資源簡介
本程序是基于opencv2.4.3和VS2010的,使用幀間差分法進(jìn)行運動目標(biāo)的檢測,使用攝像頭攝取視頻圖像,或讀取指定路徑下的視頻。效果不錯。
代碼片段和文件信息
//#include?
#include?
#include?
#include?
//#include?“MultiWindows_Display.h“
#include?
using?namespace?cv;
using?namespace?std;
int?main()
{
VideoCapture?cap(0); //打開攝像頭
if?(!cap.isOpened())
return?-1;
unsigned?int?nframe_num?=?0; //計數(shù)幀數(shù)
//VideoCapture?cap(“F:/videos/bike.avi“); //打開視頻文件
/*if(!cap.isOpened())
cout<<“fail?to?open!“< //提取視頻的性質(zhì)
//long?total_frame_num?=?cap.get(CV_CAP_PROP_frame_COUNT); //提取視頻的總幀數(shù)
double?rate?=?cap.get(CV_CAP_PROP_FPS); //提取視頻的幀率
double?width_pic?=?cap.get(CV_CAP_PROP_frame_WIDTH); //視頻的寬度
double?height_pic?=?cap.get(CV_CAP_PROP_frame_HEIGHT); //視頻的高度
Size?frameSize(static_cast(width_pic)?static_cast(height_pic)); //強制轉(zhuǎn)換為整型
BackgroundSubtractorMOG?BackG_Sub;
namedWindow(“ori_img“);
namedWindow(“foreground“);
bool?stop(false);
int?delay?=?1000/30; //兩幀之間的延時
//輸出視頻
VideoWriter?output_src(“output_video.avi“CV_FOURCC(‘M‘‘P‘‘E‘‘G‘)20frameSize0);
while(!stop)
{
nframe_num++;
cout<<“當(dāng)前處理幀為:“<ame_num<
Mat?framegray_framebackGroundMaskforeGroundMaskforeground;
cap>>frame;
if?(frame.empty())
break;
cvtColor(framegray_frameCV_RGB2GRAY0);
//更新背景圖片
BackG_Sub(gray_frameforeground0.03);
threshold(foregroundforeground128255CV_THRESH_BINARY);
imshow(“ori_img“frame); //原始視頻
imshow(“foreground“foreground);
output_src.write(foreground); //保存
if?(waitKey(delay)?>=?0)
{
stop?=?true;
}
}
cap.release();
waitKey(0);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1747??2014-09-17?20:02??BG_dif\BG_dif\backG_dif.cpp
?????文件???????4058??2014-09-17?16:24??BG_dif\BG_dif\BG_dif.vcxproj
?????文件???????1184??2014-09-17?16:24??BG_dif\BG_dif\BG_dif.vcxproj.filters
?????文件????????143??2014-09-16?22:13??BG_dif\BG_dif\BG_dif.vcxproj.user
?????文件?????130986??2014-09-17?20:02??BG_dif\BG_dif\Debug\backG_dif.obj
?????文件????????406??2014-09-16?22:27??BG_dif\BG_dif\Debug\BG_dif.exe.em
?????文件????????472??2014-09-16?22:27??BG_dif\BG_dif\Debug\BG_dif.exe.em
?????文件????????381??2014-09-17?20:02??BG_dif\BG_dif\Debug\BG_dif.exe.intermediate.manifest
?????文件?????????86??2014-09-17?20:02??BG_dif\BG_dif\Debug\BG_dif.lastbuildstate
?????文件???????2588??2014-09-17?20:02??BG_dif\BG_dif\Debug\BG_dif.log
?????文件????????202??2014-09-16?22:27??BG_dif\BG_dif\Debug\BG_dif_manifest.rc
?????文件???????1486??2014-09-17?20:02??BG_dif\BG_dif\Debug\cl.command.1.tlog
?????文件??????37776??2014-09-17?20:02??BG_dif\BG_dif\Debug\CL.read.1.tlog
?????文件???????1358??2014-09-17?20:02??BG_dif\BG_dif\Debug\CL.write.1.tlog
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
?????文件??????????2??2014-09-17?20:02??BG_dif\BG_dif\Debug\li
............此處省略65個文件信息
評論
共有 條評論