资源简介
opencv运动物体检测,检测视频中的运动物体,并分离出前景背景

代码片段和文件信息
#include
#include
#include
#include
int main( int argc char** argv )
{
//声明IplImage指针
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“ 10 0);
//cvMoveWindow(“background“ 360 0);
cvMoveWindow(“foreground“ 690 0);
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 60 255.0 CV_THRESH_BINARY);
//进行形态学滤波,去掉噪音
//cvErode(pFrImg pFrImg 0 1);
//cvDilate(pFrImg pFrImg 0 1);
//更新背景
cvRunningAvg(pframeMat pBkMat 0.003 0);
//将背景转化为图像格式,用以显示
cvConvert(pBkMat pBkImg);
//显示图像
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;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 188488 2010-01-20 21:52 MotionDetection\Debug\MotionDetection.exe
文件 210380 2010-01-20 21:52 MotionDetection\Debug\MotionDetection.ilk
文件 17356 2010-01-20 21:52 MotionDetection\Debug\MotionDetection.obj
文件 4115936 2010-01-20 21:49 MotionDetection\Debug\MotionDetection.pch
文件 459776 2010-01-20 21:52 MotionDetection\Debug\MotionDetection.pdb
文件 156672 2010-01-23 23:26 MotionDetection\Debug\vc60.idb
文件 94208 2010-01-20 21:52 MotionDetection\Debug\vc60.pdb
文件 3064 2010-01-20 21:52 MotionDetection\MotionDetection.cpp
文件 4278 2010-01-20 21:54 MotionDetection\MotionDetection.dsp
文件 555 2010-01-20 21:45 MotionDetection\MotionDetection.dsw
文件 41984 2010-01-23 23:27 MotionDetection\MotionDetection.ncb
文件 48640 2010-01-23 23:27 MotionDetection\MotionDetection.opt
文件 264 2010-01-23 23:26 MotionDetection\MotionDetection.plg
目录 0 2010-01-20 21:52 MotionDetection\Debug
目录 0 2010-01-23 23:27 MotionDetection
----------- --------- ---------- ----- ----
5341601 15
相关资源
- 基于OpenCV的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
- openCV 上的小波变换
- 基于OPENCV的车牌识别系统设计
- 617张国内车牌60-17bmp图片用于OpenCV正样
- hog特征提取,c版本代码
- 基于Qt5.8+OpenCV3.2的Basler多相机触发开
- 基于Opencv实现的图像纠偏
- ImageWatch2019.vsix
评论
共有 条评论