基于MFC的OpenCV简单视频播放器
来源:互联网 发布:建筑公司法务 知乎 编辑:程序博客网 时间:2024/05/17 03:39
1.程序功能简介
我们点击OpenFile按钮,选取路径,然后点击Ok,显示或播放所选的图片或视频。
2.功能实现
2.1 Dlg类头文件中添加以下项:
public:
CString FileName;//记录所选文件路径
CRect rect;//关联图像控件矩形
CStatic* pStc; //标识图像显示的Picture控件
CDC* pDC; //视频显示控件设备上下文
HDC hDC; //视频显示控件设备句柄
CvCapture* capture; //视频获取结构
2.2 Dlg构造函数中初始化:
pStc=NULL;
pDC=NULL;
capture=NULL;
2.3 Dlg::OnInitDialog()中添加如下代码:
pStc=(CStatic *)GetDlgItem(IDC_VIEW);//IDC_VIEW为Picture控件ID
pStc->GetClientRect(&rect);//将CWind类客户区的坐标点传给矩形
pDC=pStc->GetDC(); //得到Picture控件设备上下文
hDC=pDC->GetSafeHdc(); //得到控件设备上下文的句柄
2.4 OpenFile按钮消息响应函数添加如下代码:
CFileDialog dlg(TRUE);//TRUE为OPEN对话框,FALSE为SAVE AS对话框
if(dlg.DoModal()==IDOK) //建立模态对话框
FileName=dlg.GetPathName();
SetDlgItemText(IDC_EDIT1,(LPCTSTR)FileName);//将文件路径显示在文本控件中
2.5 OK按钮详细相应函数
if(!capture)
{
capture=cvCreateFileCapture((LPCTSTR)FileName);
}
if(!capture)
{
AfxMessageBox("Error!");
return;
}
SetTimer(1,25,NULL);
2.6 Dlg添加WM_TIMER事件响应
我们设置了定时器自动读取视频中的一帧,这里对Dlg添加WM_TIMER事件响应函数
if(1==nIDEvent)
{
IplImage* frame;
frame=cvQueryFrame(capture);
//cvGrabFrame( capture ); //从摄像头或者视频文件中抓取帧
//frame=cvRetrieveFrame(capture); //取回由函数cvGrabFrame抓取的图像
CvvImage m_CvvImage;
m_CvvImage.CopyOf(frame,1); //复制该帧图像
m_CvvImage.DrawToHDC(hDC, &rect); //显示到设备的矩形框内
}
3.总结
注意CvvImage.h和CvvImage.cpp文件的添加,之前在网上找到了一个文件,添加后却一直编译不过,以为是自己程序有问题,后来发现是添加文件的问题,希望大家使用的时候也要注意此类问题。下面资源里的CvvImage.h和CvvImage.cpp文件亲测有效。
源代码资源:
http://download.csdn.net/detail/bright_geek/8163975
- 基于MFC的OpenCV简单视频播放器
- 基于opencv与MFC的视频播放。
- OpenCV:基于MFC的视频播放器和图片读取器
- 基于DirectShow的MFC视频播放器
- Opencv 简单视频播放器
- 视频播放器制作(OpenCV+MFC)
- MFC视频播放器制作(OpenCV)
- android基于ffmpeg的简单视频播发器 播放视频
- OpenCV系列1-简单高效:MFC显示图片、播放视频
- opencv 一个简单的视频播放器设置
- opencv入门(简单的视频播放控制)
- opencv篇之简单的播放视频
- VS2013 MFC opencv 播放视频
- 最简单的基于DirectShow的示例:视频播放器
- 最简单的基于 DirectShow 的视频播放器
- 最简单的基于ffmpeg+SDL的视频播放器
- 转:最简单的基于 DirectShow 的视频播放器
- 最简单的基于DirectShow的示例:视频播放器
- 《网蜂A8实战演练》——9.Linux NAND FLASH 驱动
- 【iOS】iOS点击键盘以外空白区域隐藏键盘的常见方法
- Hibernate框架(四)缓存策略+lazy
- 【OO】面向对象,春暖花开
- Hibernate框架(五)面向对象查询语言和锁
- 基于MFC的OpenCV简单视频播放器
- 第十一周项目4.1 满足一个十分苛刻的条件的三位数
- uva--270+暴力
- JavaScript 知识
- untiy3d---场景音频
- leetcode Combination Sum II
- 12周。。阶乘
- object-c 入门基础篇
- 如何在myeclipse中使用Maven