资源简介
用VS2010和OPENCV编写的关于视频烟雾检测的程序,运行效果很好。
代码片段和文件信息
/****************************************************
* smoke detection
*
******************************************************/
#include
#include
#include
#include
int main(int argcchar** argv)
{
IplImage* pframe=NULL;
IplImage* pFrImg=NULL;
IplImage* pBkImg=NULL;
CvMat* pframeMat=NULL;
CvMat* pFrMat=NULL;
CvMat* pBkMat=NULL;
CvCapture* pCapture=NULL;
int nFrmNum=0;
cvNamedWindow(“video“1);
cvNamedWindow(“background“1);
cvNamedWindow(“foreground“1);
cvMoveWindow(“video“300);
cvMoveWindow(“background“3600);
cvMoveWindow(“foreground“6900);
if(argc>2)
{
fprintf(stderr“Usage:bkgrd [video_file_name]\n“);
return -1;
}
if(argc==1)
{
if(!(pCapture=cvCaptureFromCAM(-1)))
{
fprintf(stderr“Can not open camera.\n“);
return -2;
}
}
if(argc==2)
{
if(!(pCapture=cvCaptureFromFile(argv[1])))
{
fprintf(stderr“Can not open video file %s\n“argv[1]);
return -2;
}
}
while(pframe=cvQueryframe(pCapture))
{
nFrmNum++;
if(nFrmNum==1)
{
pBkImg = cvCreateImage(cvSize(pframe->width pframe->height) IPL_DEPTH_8U1);
pFrImg = cvCreateImage(cvSize(pframe->width pframe->height) IPL_DEPTH_8U1);
pBkMat = cvCreateMat(pframe->height pframe->width CV_32FC1);
pFrMat = cvCreateMat(pframe->height pframe->width CV_32FC1);
pframeMat = cvCreateMat(pframe->height pframe->width CV_32FC1);
//转化成单通道图像再处理
cvCvtColor(pframe pBkImg CV_BGR2GRAY);
cvCvtColor(pframe pFrImg CV_BGR2GRAY);
cvConvert(pFrImg pframeMat);
cvConvert(pFrImg pFrMat);
cvConvert(pFrImg pBkMat);
}
else
{
cvCvtColor(pframe pFrImg CV_BGR2GRAY);
cvConvert(pFrImg pframeMat);
//高斯滤波先,以平滑图像
cvSmooth(pframeMat pframeMat CV_GAUSSIAN 3 0 0);
//当前帧跟背景图相减
cvAbsDiff(pframeMat pBkMat pFrMat);
//二值化前景图
cvThreshold(pFrMat pFrImg 12 255.0 CV_THRESH_BINARY);
//进行形态学滤波,去掉噪音
cvErode(pFrImg pFrImg 0 1);
//cvDilate(pFrImg pFrImg 0 1);
//更新背景
cvRunningAvg(pframeMat pBkMat 0.01 0);
//将背景转化为图像格式,用以显示
cvConvert(pBkMat pBkImg);
//把图像正过来
pBkImg->origin=1;
pFrImg->origin=1;
//显示图像
cvShowImage(“video“ pframe);
cvShowImage(“background“ pBkImg);
cvShowImage(“foreground“ pFrImg);
//如果有按键事件,则跳出循环
//此等待也为cvShowImage函数提供时间完成显示
//等待时间可以根据CPU速度调整
if( cvWaitKey(2) >= 0 )
break;
}
}
//销毁窗口
cvDestroyWindow(“video“);
cvDestroyWindow(“background“);
cvDestroyWindow(“foreground“);
//释放图像和矩阵
cvReleaseImage(&pFrImg);
cvReleaseImage(&pBkImg);
cvReleaseMat(&pframeMat);
cvReleaseMat(&pFrMat);
cvReleaseMat(&pBkMat);
cvReleaseCapture(&pCapture);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2997 2009-03-27 14:09 smokedetection\bkgrd.cpp
文件 3342 2013-08-07 14:52 smokedetection\connected_component.cpp
文件 1113 2013-08-07 14:52 smokedetection\connected_component.h
文件 7875 2009-05-06 16:30 smokedetection\gmm.cpp
文件 1266476 2012-11-24 18:03 smokedetection\jie001.avi
文件 11410 2013-08-14 09:32 smokedetection\smoke detection.cpp
文件 8764 2009-05-06 16:26 smokedetection\smoke detection1.cpp
文件 10673 2009-05-06 16:35 smokedetection\smoke detection2.cpp
文件 4753 2013-05-27 22:49 smokedetection\smokedetection.dsp
文件 553 2009-03-26 14:43 smokedetection\smokedetection.dsw
文件 66560 2013-05-27 22:49 smokedetection\smokedetection.ncb
文件 50688 2013-05-27 22:49 smokedetection\smokedetection.opt
文件 262 2013-05-27 22:48 smokedetection\smokedetection.plg
文件 894 2013-08-17 20:27 smokedetection\smokedetection.sln
..A..H. 14336 2013-08-17 20:29 smokedetection\smokedetection.suo
文件 7196 2013-08-17 20:27 smokedetection\smokedetection.vcxproj
文件 1340 2013-08-07 14:48 smokedetection\smokedetection.vcxproj.filters
文件 378 2013-08-07 15:13 smokedetection\smokedetection.vcxproj.user
文件 3360 2013-08-14 09:31 smokedetection\swavelet.cpp
文件 181 2009-03-30 11:40 smokedetection\swavelet.h
文件 3866 2013-08-17 20:27 smokedetection\Debug\cl.command.1.tlog
文件 157220 2013-08-17 20:27 smokedetection\Debug\CL.read.1.tlog
文件 2424 2013-08-17 20:27 smokedetection\Debug\CL.write.1.tlog
文件 2 2013-08-17 20:28 smokedetection\Debug\li
文件 2 2013-08-17 20:28 smokedetection\Debug\li
文件 2 2013-08-17 20:28 smokedetection\Debug\li
文件 2 2013-08-17 20:28 smokedetection\Debug\li
文件 2 2013-08-17 20:28 smokedetection\Debug\li
文件 2 2013-08-17 20:28 smokedetection\Debug\li
文件 4480 2013-08-17 20:28 smokedetection\Debug\li
............此处省略33个文件信息
- 上一篇:pspice+元件库
- 下一篇:360批量助手 无限制全免费
相关资源
- AnkhSvn-2.6.12735 支持VS2010-VS2015 官方原版
- VS2010、VS2012、VS2013代码自动注释插件
- 插件式GIS应用框架的设计与实现&mda
- 通过x264录制RGB屏幕视频vs2013工程,
- G726、G711、G711A转换为AAC
- VS2010 运行时库
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- vs2010 ffmpeg实时解码h264码流
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 个人银行账户管理系统
- CMake-3.9.0
- 基于FFMPEG_SDL2_音视频播放_参考音频时
- G-code-Interpreter,G代码解释器
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
评论
共有 条评论