文档章节

Opencv帧差法

moki_oschina
 moki_oschina
发布于 2016/07/07 15:55
字数 285
阅读 67
收藏 0
#define threshold_diff1 10 //设置简单帧差法阈值
#define threshold_diff2 10 //设置简单帧差法阈值
int main(int argc,unsigned char* argv[])
{	
   Mat img_src1,img_src2,img_src3;//3帧法需要3帧图片
   Mat img_dst,gray1,gray2,gray3;
   Mat gray_diff1,gray_diff2;//存储2次相减的图片
   Mat gray;//用来显示前景的
   bool pause=false;
   VideoCapture vido_file("1.flv");//在这里改相应的文件名,输入也可以为摄像头设备  输入形式为 '0'
   namedWindow("foreground",0);
   for (;;)	
   {		
      if(!false)	
	{		
	  vido_file >>img_src1;	
        cvtColor(img_src1,gray1,CV_BGR2GRAY);	
	waitKey(5);		
	vido_file >>img_src2;	
	cvtColor(img_src2,gray2,CV_BGR2GRAY);	
	imshow("video_src",img_src2);//	
	waitKey(5);			
        vido_file >>img_src3;	
	cvtColor(img_src3,gray3,CV_BGR2GRAY);	
	subtract(gray2,gray1,gray_diff1);//第二帧减第一帧	
	subtract(gray3,gray2,gray_diff2);//第三帧减第二帧	
	for(int i=0;i<gray_diff1.rows;i++)		
	 for(int j=0;j<gray_diff1.cols;j++)	
	   {			
		if(abs(gray_diff1.at<unsigned char>(i,j))>=threshold_diff1)//这里模板参数一定要用unsigned char,否则就一直报错						
               gray_diff1.at<unsigned char>(i,j)=255;            //第一次相减阈值处理				else gray_diff1.at<unsigned char>(i,j)=0;					                if(abs(gray_diff2.at<unsigned char>(i,j))>=threshold_diff2)//第二次相减阈值处理			gray_diff2.at<unsigned char>(i,j)=255;	
		else gray_diff2.at<unsigned char>(i,j)=0;	
	}				
        bitwise_and(gray_diff1,gray_diff2,gray);	
	}	
	char c=(char)waitKey(10);
		if (c==27)	
	{		
	break;    	
	}		
       if(c== ' ')	
		pause=!pause;
	}	
return 0;
}

 

© 著作权归作者所有

moki_oschina
粉丝 26
博文 202
码字总数 44864
作品 0
成都
程序员
私信 提问
C++ 程序使用 OpenCV 实现视频捕获

下载 Capture.zip - 14.1 KB 前言 这是一个使用 Visual C++ 窗口表单编写的简单视频捕捉应用程序。这个工程既演示了窗口表单应用程序的创建,又演示了 OpenCV 的 Visual C++ 配置。 OpenCV 是...

oschina
2014/03/10
8.5K
6
基于OpenCV和Python的文件操作——捕获摄像头的帧,在窗口显示图像,在窗口显示摄像头帧和视频文件的读/写

0 写在前面 这篇博客主要参考资料为《OpenCV 3计算机视觉Python语言实现》(Learning OpenCV 3 Computer Vison with Python)。 因为之前用Faster R-CNN做过一个红绿灯检测的小实践,但是Git...

learning_tortosie
2018/04/12
0
0
Opencv级联分类器实现人脸识别

在本章中,我们将学习如何使用OpenCV使用系统相机捕获帧。org.opencv.videoio包的VideoCapture类包含使用相机捕获视频的类和方法。让我们一步一步学习如何捕捉帧 - 第1步:加载OpenCV本机库 ...

---dgw博客
2018/08/07
0
0
Android opencv 2.3.1 调试及应用(第一篇)

OpenCV 是开源的人像识别库,在Android上的应用我也刚刚开始摸索。 首先搞定开发环境,看能不能把测试程序给跑起来。 http://sourceforge.net/projects/opencvlibrary/files/opencv-android...

氪金
2013/06/27
0
5
基于UE4+ OpenCV 的混合现实 (webCamera, mix-reality, blue screen matting)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/himilong/article/details/52829231 总体效果 类似混合现实,实现展示玩家玩的VR游戏的实况 基本思想 利用ope...

不负初心
2016/10/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

趣谈预留实例券,一文搞懂云上省钱最新玩法

摘要: 一文搞懂时髦的预留实例券(RI) ECS近期推出了预留实例券(Reserved Instances),简称RI,这东西很cool,今天我们聊聊这个。 首先这篇Blog不是文档,读完后想详细了解文档的朋友请点...

zhaowei121
19分钟前
0
0
js 将json字符串转换为json对象的方法解析

js 将json字符串转换为json对象的方法解析 将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之...

城市之雾
19分钟前
1
0
国外青少年最喜爱的聊天 app,竟然是 Google Docs

简评: 这还真不是标题党,Google Docs 的协作中内置了实时聊天的功能,也可以进行 comments,颇有种现代「传纸条」的既视感。其实国内的石墨文档、腾讯文档等协作工具也有类似的效果,本文很...

极光推送
24分钟前
0
0
用zuul将微服务的多个swagger api文档聚合成一个文档

1.在每个服务的pom中添加以下依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId></dependency> 注意:仅仅需要添加这个就行。zuul负......

xtof
25分钟前
0
0
为什么取不到metamask的账号?

当你使用Metamask测试以太坊DApp时,如果出现莫名其妙的问题,检查一下web3.eth.accounts是否可以获取到账户,如果不能获取的话,那么最大的可能是你使用了新版的Metamask,并且默认启用了隐...

汇智网教程
26分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部