1.0.x-学习Opencv与MFC混合编程之---视频运动检测
源代码地址: http://download.csdn.net/detail/nuptboyzhb/3961668
版本1.0.x新增内容
视频运动检测
Ø 新建菜单项,Learning OpenCV——> OpenCVr入门——>视频运动检测
Ø 菜单项设置如下:

Ø 建立类向导
Ø 编辑代码
voidCCVMFCView::OnMyTestSport()
{
// TODO: Add your command handler codehere
//Alt+F8 整理代码
CvCapture* capture;
capture = cvCreateCameraCapture(0);//打开摄像头
if(capture==NULL)
{
MessageBox("未检测到摄像头,请检查摄像头安装是否正确");
}
else
{
CString WindowName1="摄像机";
IplImage *frame1 = 0;//第一帧
IplImage *frame2 = 0;//第二帧
IplImage *frame_sub= 0;//相减之后的帧
IplImage* pImg8u = NULL;//灰度图
//
assert(capture != NULL );//如果没有打开,中断
cvNamedWindow(WindowName1,CV_WINDOW_AUTOSIZE);
frame1= cvQueryFrame(capture);
frame_sub=cvCloneImage(frame1);
while(1)
{
frame2=cvQueryFrame(capture);
if(!frame2)
{
break;
}
cvAbsDiff(frame1,frame2,frame_sub);
frame1=cvCloneImage(frame2);
cvMoveWindow(WindowName1, 150, 200);
cvShowImage(WindowName1,frame_sub);
// 建立位图
pImg8u =cvCreateImage(cvGetSize(frame_sub),IPL_DEPTH_8U,1);
cvCvtColor(frame_sub,pImg8u,CV_BGR2GRAY); //彩色变灰阶
//--------------一下是计算直方图-----------------------------
IplImage *src;
IplImage *histimg = 0;
CvHistogram *hist = 0;
int hdims = 256; // 划分HIST的个数,越高越精确
src=cvCloneImage(pImg8u);
float hranges_arr[] ={0,255};
float* hranges =hranges_arr;
int bin_w;
float max_val;
int i;
cvNamedWindow("Histogram", 0 );
hist = cvCreateHist( 1,&hdims, CV_HIST_ARRAY, &hranges, 1 ); // 计算直方图
histimg= cvCreateImage( cvSize(320,200), 8, 3 );
cvZero( histimg );
cvCalcHist( &src, hist,0, 0 ); // 计算直方图
cvGetMinMaxHistValue( hist,0, &max_val, 0, 0 ); // 只找最大值
cvConvertScale(hist->bins, hist->bins,
max_val ? 255. /max_val : 0., 0 ); // 缩放 bin 到区间 [0,255]
cvZero( histimg );
bin_w = histimg->width /hdims; // hdims: 条的个数,则 bin_w 为条的宽度
// 画直方图
for( i = 0; i < hdims;i++ )
{
double val = (cvGetReal1D(hist->bins,i)*histimg->height/255 );
CvScalar color =CV_RGB(255,255,0); //(hsv2rgb(i*180.f/hdims);
cvRectangle(histimg, cvPoint(i*bin_w,histimg->height),
cvPoint((i+1)*bin_w,(int)(histimg->height- val)),
color, 1, 8,0 );
}
cvMoveWindow("Histogram",550, 200);
cvShowImage( "Histogram",histimg );
//------------------------------------------------------
char c = cvWaitKey(1);
if( c == 27 )
{
break;
}
}
cvReleaseCapture( &capture );
cvDestroyWindow(WindowName1);
cvDestroyWindow("Histogram");
}
}
from:http://blog.csdn.net/nupt123456789/article/details/7100114
1.0.x-学习Opencv与MFC混合编程之---视频运动检测的更多相关文章
- 1.0.3-学习Opencv与MFC混合编程之---打开本地摄像头
源代码:http://download.csdn.net/detail/nuptboyzhb/3961643 版本1.0.3新增内容 打开摄像头 Ø 新建菜单项,Learning OpenCV——&g ...
- 1.0.2-学习Opencv与MFC混合编程之---为播放AVI视频添加滑动条
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961642 版本1.0.2新增内容 Ø 全局变量和函数的添加: 在CVMFCview.cpp文件 ...
- 1.0.1-学习Opencv与MFC混合编程之---播放AVI视频
资源源代码:http://download.csdn.net/detail/nuptboyzhb/3961639 版本1.0.1新增内容 Ø 新建菜单项,Learning OpenCV——> ...
- 1.1-学习Opencv与MFC混合编程之---利用画图函数,生成视频,并写入视频文件
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961674 写视频文件 Ø 新建菜单项,Learning OpenCV——> OpenCVr ...
- 1.1.7-学习Opencv与MFC混合编程之---为画图工具添加工具栏
源代码:http://download.csdn.net/detail/nuptboyzhb/3961701 哎,其实里面有很多图片的,本来看起开很明了的,资源连接里有详细的文档,比下面的看的舒服的多 ...
- 1.1.5-学习Opencv与MFC混合编程之---画图工具 输入文字和填充图像 修改光标
源代码:http://download.csdn.net/detail/nuptboyzhb/3961696 输入文字 l 对话框 1. 插入,资源,选择对话框资源 2. 编辑对话框如下: ...
- 1.1.6-学习Opencv与MFC混合编程之---播放WAV音乐和 alpha融合功能
源代码:http://download.csdn.net/detail/nuptboyzhb/3961698 Alpha融合菜单项 1. 增加alpha融合菜单项,修改相应的属性,建立类向导 ...
- 1.1.4-学习Opencv与MFC混合编程之---画图工具 画椭圆
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961690 1. 增加‘椭圆’菜单项,设置属性,添加类向导: 2. 编辑消息处理函数, ...
- 1.1.3-学习Opencv与MFC混合编程之---画图工具 通过对话框进行工具的参数设置 画曲线 绘图校正
源代码:http://download.csdn.net/detail/nuptboyzhb/3961688 l 对话框 1.“插入”->“资源”->“对话框” 2.对话框属性如下: 双击 ...
随机推荐
- iOS UILabel 使用姿势大全(标红关键字)
一.初始化 ? 1 2 3 UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(40, 40, 120, 44)]; ...
- Web Deploy发布网站一条龙解决方案
Web Deploy工具对于ASP.NET开发人员来说一定不陌生,没有用过也经常见到,Web Deploy发布十分方便而且在发布时会帮助用户检验发布文件的正确性.接下来介绍一下基础使用. 第一步:安装 ...
- IOS7修改Navigation Bar上的返回按钮文本颜色,箭头颜色以及导航栏按钮的颜色
解决方法 1: 自从IOS7后UINavigationBar的一些属性的行为发生了变化.你可以在下图看到: 现在,如果你要修改它们的颜色,用下面的代码: 1 2 3 4 self.navigation ...
- Altera FPGA中的pin简介
第一步要看的肯定是pin planner ,这个是黑金四代EP4CE15F17C8的视图 先就是发现他们pin有不同的颜色区域,分别对应不同的bank,应该是有的设计里面要求pin在同一个bank吧( ...
- mojo 接口返回键值对的json格式
my $c = shift; use DBI; my %hash=(); my $dbUser='zabbix'; my $user="root"; my $passwd=&quo ...
- Debian为程序添加一个开始菜单,debian添加sublime开始菜单.
下了一个 '绿色' 的程序,想要加到开始菜单里面. 怎么做呢? 我这里以sublime2做例 去http://www.sublimetext.com/2 下载了linux 64位, 解压放到了下面的文 ...
- 富文本编辑器 - wangEditor 表情
效果: 文件夹中的表情: 代码:
- Java进阶03 IO基础
链接地址:http://www.cnblogs.com/vamei/archive/2013/04/11/3000905.html 作者:Vamei 出处:http://www.cnblogs.com ...
- BZOJ 1009: [HNOI2008]GT考试( dp + 矩阵快速幂 + kmp )
写了一个早上...就因为把长度为m的也算进去了... dp(i, j)表示准考证号前i个字符匹配了不吉利数字前j个的方案数. kmp预处理, 然后对于j进行枚举, 对数字0~9也枚举算出f(i, j) ...
- javascript笔记整理(事件)
一.事件驱动 1.事件javascript侦测到的用户的操作或是页面的一些行为(怎么发生的) 2.事件源引发事件的元素(发生在谁的身上) 3.事件处理程序对事件处理的程序或是函数 (发生了什么事) 二 ...