OpenCV实现基于图像内容检索--视频播放(上)

时间:2021-11-02 04:04:31

最近要交个小作业,恰好刚开了博客园的博客,就想着把这个记下来当是做点笔记)=.=(,做的小作业的题目是基于图像内容的内容检索,先从基础的一步一步来,这部分主要是讲包括OpenCV和使用ActiveX控件两种方法来播放,现在就先写关于使用控件来实现视频播放的内容吧。

  【可能这几篇文章只是应用型的小作业,水平可能适合初学者看看,大牛略过就行】

开发环境:

Win7+VS2012+OpenCV

1.首先,打开VS2012,文件-->新建-->项目-->MFC应用程序,输入项目"名称"为Video,点击"确定",然后选中"基于对话框",其余保持默认就好,然后"完成"。

2.删除默认的几个控件,下面先介绍第一种:以控件方式实现视频播放。

  在Video界面中右键,选择"插入ActiveX控件",然后选择"Windows Media Player",点击"确定"。

  调节控件的大小,然后右键这个控件,选择"类向导",如图1所示:

  OpenCV实现基于图像内容检索--视频播放(上)

  双击1处,添加变量名,设置为"m_player",然后点击2处"添加类",选择"ActiveX控件中的MFC类",如图2所示:

  OpenCV实现基于图像内容检索--视频播放(上)

  按照网上的教程,说是在"可用的ActiveX控件"找到Windows media player<1.0>选中即可,但我没找到这个,于是可以选中"文件",点击"位置",选择"C:\Windows\System32\wmp.dll",如果可以都选上生成类,我选中了"IWMPPlayer4",然后">",点击"完成"即可。(如果需要下载Windows media player控件类打包,点击这里下载)

  此时会跳转到CWMPPlayer4.h文件中,然后我们在VideoDlg.h文件爱你中添加头文件,即#include CWMPPlayer4.h,然后声明控件对象,如图3所示:

  OpenCV实现基于图像内容检索--视频播放(上)

  然后关联控件,注意眼根据自己控件的ID而定(我的默认的就是IDC_OCX1):

  OpenCV实现基于图像内容检索--视频播放(上)

  接着在界面中添加一个按钮,并双击按钮,出现响应按钮事件的函数进行编辑,我们只是简单的写一句就好:

void CVideoDlg::OnBnClickedButton1()
{
  m_player.put_URL(_T("G:\\testdata\\test.avi"));   //注意加路径是\\,因为要转义,并且路径前要加上_T(),不然会报错
}

  最后运行程序,播放效果如下图所示:

  OpenCV实现基于图像内容检索--视频播放(上)

  

  在配置过程中可能还会出现一些小错误,多多查资料,多多交流。下篇讲使用OpenCV实现视频播放。