資源簡介
通過觀察火焰圖像在YCrCb空間的三通道的不同,得出約束條件,程序由opencv實現~

代碼片段和文件信息
#include?“cv.h“??
#include?“highgui.h“??
#include?
#include?
#include?
int?main(int?argcchar**?argv)
{
//變量定義
IplImage?*image=0*img=0?*yuv=0;
int?ij;
int?heightwidthstepchannels;
????uchar*?data;
//CvMat*?pFrMat=NULL;
CvScalar?scalar1;
????int?VECT=0;//閾值參數設為35
char*?filename=argc==2?argv[1]:(char*)“fire2.jpg“;
//讀入圖像
image=cvLoadImage(filename-1);
if(!image)??printf(“Could?not?load?image?file\n“);
yuv=cvCreateImage(cvGetSize(image)83);
img=cvCreateImage(cvGetSize(image)83);
//創建窗口顯示源圖像
cvNamedWindow(“SourceImage“CV_WINDOW_AUTOSIZE);
cvNamedWindow(“ResultImage“CV_WINDOW_AUTOSIZE);
cvShowImage(“SourceImage“image);
//轉化為YCrCb空間獲取圖像信息
cvCvtColor(imageyuvCV_BGR2YCrCb);
height???=?yuv->height;
width????=?yuv->width;
step?????=?yuv->widthStep;
channels?=?yuv->nChannels;
data?????=?(uchar?*)yuv->imageData;
printf(“Processing?a?%dx%d?image?with?%d?channels\n“heightwidthchannels);
/************************測試得順序為YCrCb*********************************
/*
IplImage?*plane0=0*plane1=0*plane2=0;
plane0=cvCreateImage(cvGetSize(image)81);
plane1=cvCreateImage(cvGetSize(image)81);
plane2=cvCreateImage(cvGetSize(image)81);
cvCvtPixToPlane(yuvplane0plane1plane20);
cvNamedWindow(“Image0“CV_WINDOW_AUTOSIZE);
cvNamedWindow(“Image1“CV_WINDOW_AUTOSIZE);
cvNamedWindow(“Image2“CV_WINDOW_AUTOSIZE);
cvShowImage(“Image0“plane0);
cvShowImage(“Image1“plane1);
cvShowImage(“Image2“plane2);
??cvWaitKey();
cvDestroyWindow(“Image0“);
cvDestroyWindow(“Image1“);
cvDestroyWindow(“Image2“);
*/
//求YCrCb三量的均值
scalar1=cvAvg(yuv);//scalar1.val[0]是y通道均值scalar1.val[1]是Cr通道均值
????for(i=0;i {
???? if(data[i*step+j*channels+0]>data[i*step+j*channels+2]&&data[i*step+j*channels+0]>scalar1.val[0]&&\
???? data[i*step+j*channels+1]>data[i*step+j*channels+2]&&data[i*step+j*channels+1]>scalar1.val[1]&&\
data[i*step+j*channels+2]VECT)
??
????// if(data[0]>data[2]?&&?data[0]>scalar1.val[0]?&&?data[1]>data[2]?&&?data[1]>scalar1.val[1]?&&?data[2]VECT)
{
img->imageData[i*img->widthStep+j*img->nChannels+0]=255;
img->imageData[i*img->widthStep+j*img->nChannels+1]=255;
img->imageData[i*img->widthStep+j*img->nChannels+2]=255;
}
else
{
img->imageData[i*img->widthStep+j*img->nChannels+0]=0;
img->imageData[i*img->widthStep+j*img->nChannels+1]=0;
img->imageData[i*img->widthStep+j*img->nChannels+2]=0;
}
}
cvShowImage(“ResultImage“img);
????cvWaitKey();
cvDestroyWindow(“SourceImage“);
cvDestroyWindow(“ResultImage“);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2838??2012-03-06?15:46??firedetectImage\colordetect.cpp
?????文件??????15679??2012-03-06?15:46??firedetectImage\Debug\colordetect.obj
?????文件??????????0??2012-03-01?21:52??firedetectImage\Debug\colordetect.sbr
?????文件????2122752??2012-03-01?21:52??firedetectImage\Debug\firedetect.bsc
?????文件?????200755??2012-03-06?15:46??firedetectImage\Debug\firedetect.exe
?????文件?????210732??2012-03-06?15:46??firedetectImage\Debug\firedetect.ilk
?????文件????4128860??2012-03-06?15:46??firedetectImage\Debug\firedetect.pch
?????文件?????467968??2012-03-06?15:46??firedetectImage\Debug\firedetect.pdb
?????文件?????181248??2012-03-06?15:46??firedetectImage\Debug\vc60.idb
?????文件?????110592??2012-03-06?15:46??firedetectImage\Debug\vc60.pdb
?????文件?????177892??2012-03-01?22:01??firedetectImage\fire.jpg
?????文件????5916160??2012-02-24?15:12??firedetectImage\fire1.avi
?????文件??????27843??2012-02-22?14:34??firedetectImage\fire1.jpg
?????文件??????43152??2012-03-01?21:52??firedetectImage\fire2.jpg
?????文件??????45202??2012-03-01?21:52??firedetectImage\fire3.jpg
?????文件??????36486??2012-03-01?21:51??firedetectImage\fire4.jpg
?????文件??????34891??2012-03-02?16:30??firedetectImage\fire5.jpg
?????文件??????17449??2012-03-02?16:30??firedetectImage\fire6.jpg
?????文件?????157547??2012-03-02?16:30??firedetectImage\fire7.jpg
?????文件??????16701??2012-03-02?16:31??firedetectImage\fire8.jpg
?????文件??????16349??2012-03-05?18:31??firedetectImage\fire9.jpg
?????文件???????4195??2012-03-01?19:35??firedetectImage\firedetect.dsp
?????文件????????526??2012-03-01?18:29??firedetectImage\firedetect.dsw
?????文件??????53760??2012-03-05?21:39??firedetectImage\firedetect.opt
?????文件???????1904??2012-03-06?15:46??firedetectImage\firedetect.plg
?????文件?????438961??2012-03-05?18:42??firedetectImage\picture.jpg
????..A.SH.?????51200??2012-03-06?15:46??firedetectImage\Thumbs.db
?????目錄??????????0??2012-03-06?15:46??firedetectImage\Debug
?????目錄??????????0??2012-03-01?20:00??firedetectImage\Release
?????目錄??????????0??2012-03-06?15:46??firedetectImage
............此處省略3個文件信息
- 上一篇:Win32純API實現的簡單畫圖程序
- 下一篇:影視后期 AE工程 源文件
評論
共有 條評論