資源簡介
調用攝像頭實時采集圖像與背景圖像進行差分,檢測采集圖像與背景圖像的差別,顯示有差別的圖像。
代碼片段和文件信息
#include?
#include
using?namespace?cv;
using?namespace?std;
#include
#include
#include
#include
int?main()
{
?????IplImage*?pSaveframe=NULL;?
??IplImage*?src1=NULL;//加載背景圖
?
?????CvCapture*?capture=cvCaptureFromCAM(0);
?????CvVideoWriter*?video=NULL;
?????IplImage*?frame=NULL;
????char?filename[100];
char?filename2[100];
char?filename3[100];
char?windowname2[100];
????int?i=1;
????int?p[3];??
????p[0]?=?CV_IMWRITE_JPEG_QUALITY;??
????p[1]?=?10;??//質量值??
????p[2]?=?0;??
?
?
????int?n;
????if(!capture)?//如果不能打開攝像頭給出警告
????{
????????cout<<“Can?not?open?the?camera.“< ????????return?-1;
????}
????else
????{
????????frame=cvQueryframe(capture);?//首先取得攝像頭中的一幀
????????video=cvCreateVideoWriter(“camera.avi“-115?cvSize(frame->widthframe->height));?//創建CvVideoWriter對象并分配空間
????????//保存的文件名為camera.avi,編碼要在運行程序時選擇,大小就是攝像頭視頻的大小,幀頻率是32
????????if(video)?//如果能創建CvVideoWriter對象則表明成功
????????{
????????????cout<<“VideoWriter?has?created.“< ????????}
????????cvNamedWindow(“Camera?Video“1);?//新建一個窗口
????????while(1)
????????{
??????????
??for(i=1;i<100;i++)
??{
frame=cvQueryframe(capture);?//從CvCapture中獲得一幀
??????????????
????????????if(!frame)
????????????{
????????????????cout<<“Can?not?get?frame?from?the?capture.“< ????????????????break;
????????????}
?
?
?
?
????????????n=cvWriteframe(videoframe);?//判斷是否寫入成功,如果返回的是1,表示寫入成功
????????????cout<
????????????cvShowImage(“Camera?Video“frame);?//顯示視頻內容的圖片
?
????????????pSaveframe=cvCreateImage(cvSize(frame->widthframe->height)frame->depthframe->nChannels);?
????????????sprintf_s(filename“采集圖像\\%d.jpg“i);
??????????
????????????cvResize(framepSaveframeCV_INTER_LINEAR);??
????????????cvSaveImage(filenamepSaveframep);??
????????????cvReleaseImage(&pSaveframe);?
????sprintf(filename2“圖像\\灰度運算%d.jpg“i);
sprintf(windowname2“window2%d.jpg“i);
?//對各變量命名-----------------------------------------------
?IplImage*?shipin=cvLoadImage(filename1);//讀取圖像
?IplImage*?image2=cvCreateImage(cvGetSize(shipin)IPL_DEPTH_8U1);//建立處理后的圖像格式
?IplImage*?image3=cvCreateImage(cvGetSize(shipin)IPL_DEPTH_8U1);
?CvMat*?pGrayMat7?=?NULL;????
?pGrayMat7?=?cvCreateMat(shipin->height?shipin->width?CV_32FC1);??
??
BYTE?data1;???????//中間過程變量??
BYTE?data2;??
BYTE?data3;??
BYTE?data7;??
for(int?j=0;?jheight;?j++)??
{??
for(int?i=0;?iwidth;?i++)??
{?????????????
data1?=?(BYTE)shipin->imageData[j*shipin->widthStep?+?i*3];?????//B分量??
data2?=?(BYTE)shipin->imageData[j*shipin->widthStep?+?i*3?+?1];?//G分量??
data3?=?(BYTE)shipin->imageData[j*shipin->widthStep?+?i*3?+?2];?//R分量??????
data7?=?(BYTE)(0.11*data1?+?0.59*data2?+?0.30*data3);??
cvmSet(pGrayMat7?j?i?data7);??
}??
}??
cvConvert(pGra
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????1321984??2016-10-18?11:15??shipin2\Debug\shipin.pdb
?????文件???53936128??2016-12-12?15:37??shipin2\ipch\shipin-634d39fe\shipin-945f0e31.ipch
?????文件??????10752??2016-12-12?16:38??shipin2\Release\shipin.exe
?????文件????1010688??2016-12-12?16:38??shipin2\Release\shipin.pdb
?????文件??????????0??2016-12-08?14:09??shipin2\shipin\camera.avi
?????文件????????666??2016-12-08?10:49??shipin2\shipin\Debug\cl.command.1.tlog
?????文件??????20230??2016-12-08?10:49??shipin2\shipin\Debug\CL.read.1.tlog
?????文件????????360??2016-12-08?10:49??shipin2\shipin\Debug\CL.write.1.tlog
?????文件??????????2??2016-12-08?10:49??shipin2\shipin\Debug\li
?????文件??????????2??2016-12-08?10:49??shipin2\shipin\Debug\li
?????文件??????????2??2016-12-08?10:49??shipin2\shipin\Debug\li
?????文件??????????2??2016-12-08?10:49??shipin2\shipin\Debug\li
?????文件??????????2??2016-12-08?10:49??shipin2\shipin\Debug\li
?????文件??????????2??2016-12-08?10:49??shipin2\shipin\Debug\li
?????文件??????????2??2016-12-08?10:49??shipin2\shipin\Debug\li
?????文件??????????2??2016-12-08?10:49??shipin2\shipin\Debug\li
?????文件??????????2??2016-12-08?10:49??shipin2\shipin\Debug\li
?????文件??????????2??2016-12-08?10:49??shipin2\shipin\Debug\li
?????文件??????????2??2016-12-08?10:49??shipin2\shipin\Debug\li
?????文件?????121117??2016-12-08?10:49??shipin2\shipin\Debug\main.obj
?????文件????????386??2016-10-18?11:15??shipin2\shipin\Debug\mt.command.1.tlog
?????文件????????330??2016-10-18?11:15??shipin2\shipin\Debug\mt.read.1.tlog
?????文件????????330??2016-10-18?11:15??shipin2\shipin\Debug\mt.write.1.tlog
?????文件????????534??2016-10-18?11:15??shipin2\shipin\Debug\rc.command.1.tlog
?????文件????????302??2016-10-18?11:15??shipin2\shipin\Debug\rc.read.1.tlog
?????文件????????310??2016-10-18?11:15??shipin2\shipin\Debug\rc.write.1.tlog
?????文件????????406??2016-10-18?11:15??shipin2\shipin\Debug\shipin.exe.em
?????文件????????472??2016-10-18?11:15??shipin2\shipin\Debug\shipin.exe.em
?????文件????????381??2016-10-18?11:15??shipin2\shipin\Debug\shipin.exe.intermediate.manifest
?????文件?????????65??2016-12-08?10:49??shipin2\shipin\Debug\shipin.lastbuildstate
............此處省略89個文件信息
評論
共有 條評論