opecncv之运动物体检测
来源:互联网 发布:移动端网页聊天室源码 编辑:程序博客网 时间:2024/05/21 18:37
1)运动物体检测简介
运动物体检测就是在视频(视频文件/摄像头获取)中检测运动物体(目标)。opencv中常用的运动物体检测方法有背景减法,帧差法,光流法,运动物体检测广泛应用于视频安全监控,,车辆检测等方面
背景减法:就是用原图像减去背景模型,剩下的就是前景图像,即运动目标
帧差法:就是利用相邻的两帧或三帧图像,利用像素之间的差异性,判断是否有运动目标
视频就是一帧一帧图像组成的
求图像差异最基本的就是图像减法(-,suntract,absdiff)
- /Subtract —–a-b <0 —0
-Adsdiff —————|a-b|>0
2)背景减法
基本步骤:
原图—背景—-阈值处理—去除噪声(腐蚀 滤波)—膨胀连通—-查找轮廓—-外接矩形(椭圆/圆)
3)帧差法
基本步骤 :
相邻帧相减—阈值处理—-去除噪声(腐蚀滤波)—-膨胀连通—-查找轮廓—-外接矩形(椭圆/圆)
//两张图片的验证Mat img1=imread("1.bmp");Mat img2=imread("55.bmp");imshow("img1",img1);imshow("img2",img2);//Mat result=img2.clone();Mat gray1,gray2;cvtColor(img1,gray1,CV_BGR2GRAY);cvtColor(img2,gray2,CV_BGR2GRAY);Mat diff;adsdiff(gray1,gray2,diff);imshow("absdiss",diff);threshold(diff,diff,45,255,CV_THRESH_BINARY);imshow("threshold",diff);Mat element=getStructuringElement(MOORPH_RECT,Size(3,3));Mat element2=getStructuringElement(MORPH_RECT,Size(11,11));erode(diff,diff,element);imshow("erode",diff);dilate(diff,diff,element2);imshow("dilate",diff);vector<vector<Point>contours;vector<Vec4i>hierarcy;findContours(diff,contours,hierarcy,CV_RETR_EXTERNAL,CHAIN_APPROX_NONE);//查找轮廓vector<Rect>boundRect(contours.size());//定义外接矩形集合drawContours(img2,contours,-1,Scalar(0,0,255),1,8);//绘制轮廓int xo=0;yo=0;wo=0;ho=0;for(int i=0;i<contours.size();i++){ boundRect[i]=boundingRect((Mat)contours[i]);//查找每个轮廓的外接矩形 xo=boundRect[i].x;//获得第i个外接矩形的左上角的x坐标 yo=boundRect[i].y;//获得第i个外接矩形的左上角的y坐标 wo=boundRect[i].width;//获得第i个外接矩形的宽度 ho=boundRect[i].height;//获得第i个外接矩形的高度 rectangle(img2,Point(xo,yo),Point(xo+wo,yo+ho),Scalar(0,255,0),2,8);//绘制第i个外接矩形}imshow("result",img2);waitKey(0);视频要可以提取第一帧为背景帧
阅读全文
0 0
- opecncv之运动物体检测
- opencv 之运动物体检测(二)
- opencv运动物体检测
- OpenCV学习之利用背景建模检测运动物体
- 运动物体检测的问题
- 光流法 运动物体检测[Eng]
- 光流检测运动物体
- 静态相机检测运动物体
- 运动物体的检测 初
- 运动物体的检测--对视频检测
- 运动物体检测——光流法
- 光流法 运动物体检测【中文解释】
- OpenCV 使用光流法检测物体运动
- opencv 运动物体检测函数介绍
- 读视频文件和运动物体检测
- 基于OpenCv的运动物体检测算法
- OpenCV:利用背景建模检测运动物体
- 视频 背景建模,运动物体检测
- stm32 printf 死机
- xcode模拟器默认弹出默认键盘
- android应用与Linux内核驱动数据交互
- wampserver修改默认端口80问题
- Q122:PBRT-V3,提高Monte Carlo积分计算效率的方法——Russian Roulette和Splitting(13.7章节)
- opecncv之运动物体检测
- 分割List集合
- 多个servlet间跳转技术的细节
- Hbase 查询过程详解(基于hbase0.98版本后分析的)
- 多个脚本调用同一个函数的方法
- Sublime text!行首,行尾,批量编辑!
- android之APP模块编译
- CodeForces697C【LCA】
- Oracle Probider for OLE DB找不到,怎么破?