关于摄像头的控制操作,无非就是获取摄像头图像并且保存摄像头视频等常用的操作。
关于在MFC项目中利用opencv捕获摄像头信息,在下面这篇文章中写的很详细:
http://blog.csdn.net/weixingstudio/article/details/7360941
如果在这个项目的基础上添加保存摄像头信息,就可以简单的实现了,在原来项目的基础上调用cvCreateVideoWriter()函数创建一个写视频文件的指针,然后把每一帧的视频文件用cvWriteFrame(writer,m_Frame);这个函数实现就可以了。
writer=cvCreateVideoWriter("MyVideo.avi",CV_FOURCC('x','v','I','D'),25,cvSize(640,480));
上面函数中的参数大概就是创建视频文件的名字,视频压缩的格式,每秒钟的视频帧数,视频的大小。具体的参数设置请参考opencv开发文档。
关于opencv项目的配置,请参考opencv社区教程。本项目的所有配置,可以参考链接:http://blog.csdn.net/weixingstudio/article/details/7360941
两个主要的函数:
CvCapture* capture;
CRect rect;
CDC *pDC;
HDC hDC;
CWnd *pwnd;
void CVideoMFCDlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
//AfxMessageBox("OK");
if(!capture)
{
capture = cvCaptureFromCAM(0);
//AfxMessageBox("OK");
}
if (!capture)
{
AfxMessageBox("无法打开摄像头");
return;
}
writer=cvCreateVideoWriter("MyVideo.avi",CV_FOURCC('x','v','I','D'),25,cvSize(640,480));
// 测试
IplImage* m_Frame;
m_Frame=cvQueryFrame(capture);
CvvImage m_CvvImage;
m_CvvImage.CopyOf(m_Frame,1);
if (true)
{
m_CvvImage.DrawToHDC(hDC, &rect);
//cvWaitKey(10);
}
// 设置计时器,每10ms触发一次事件
SetTimer(1,10,NULL);
}
void CVideoMFCDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: Add your message handler code here and/or call default
/************************************************************************/
/* 显示摄像头 */
/************************************************************************/
IplImage* m_Frame;
m_Frame=cvQueryFrame(capture);
CvvImage m_CvvImage;
m_CvvImage.CopyOf(m_Frame,1);
if (true)
{
m_CvvImage.DrawToHDC(hDC, &rect);
cvWriteFrame(writer,m_Frame);
//cvWaitKey(10);
}
CDialogEx::OnTimer(nIDEvent);
}
关于整个显示摄像头并且保存摄像头信息的工程源码,可以从下面链接下载:
http://download.csdn.net/detail/weixingstudio/4284066
分享到:
相关推荐
使用opencv在mfc中打开摄像头和视频文件
在vs2010中建立MFC对话框,通过opencv实现图像的采集、保存、播放本地视频、通过滑块控制播放进度。
在前辈的基础上做了一些改进,适用于vs2015+opencv3.3
该程序很好的结合了MFC和opencv知识,不只是完成配置,而且可以直接用电脑摄像头实现程序运行,主要功能是在MFC的控件中实现OPENCV的摄像头显示。
二、使用CvvImage类显示摄像头视频 opencv的较高版本中没有CvvImage类,因此需要手动添加这个类的头文件CvvImage.h和代码文件CvvImage.cpp。 mfc界面添加一个picture控件,ID为IDC_VIEW1。 在对话框头文件中定义...
VS2015+opencv在MFC中显示摄像头,可以截取图片,opencv4.0.0,图像显示在MFC对话框的static控件中
在MFC中实现显示摄像头画面并保存视频 利用了opencv2.3.1
OpenCV类库中提供了大量进行计算机视觉处理的类
通过VideoInput采集USB摄像机图像,纹理映射至Opengl后,通过MFC的picture控件进行显示。需要配置Opencv(工程采用的绝对路径),配置OpenGL。
opencv之利用mfc播放视频
MFC下编写的对话框程序,打开摄像头/视频文件/图像文件。基于opencv下的Mat类,避免了内存管理问题。此代码为开发图像/视频处理软件开发提供良好的参考。
适合初学者的基于opencv的完整的MFC工程文件,打开笔记本摄像头,抓取图片,进行边缘检测。程序经过适当修改即可利用MFC打开任意视频文件,抓取图片
mfc的dialog程序,利用opencv编写 ,可以打开摄像头,并且可以打开avi格式的视频文件
用摄像头捕获视频并保存视频及图片,按Esc可以退出摄像头界面,按S可以截取当前画面。
在VS2010下,利用opencv2.3.1打开两个USB摄像头。
利用OpenCV在MFC中显示图片的转换类,可以将IplImage类型的数据转换成MFC对话框可现实的数据,很实用。
opencv 利用qt显示usb摄像头,可以经过适当处理移植进嵌入式系统
本工程在vs2010下使用opencv进行读取usb摄像头视频数据并实现抓图
VS2010和Opencv2.4.4完美运行
OpenCVSharp的小应用实例, 将视频或摄像头录像保存成GIF动图小实例源代码 共同学习,一起进步