zoukankan      html  css  js  c++  java
  • 利用OpenCV和MFC对话框建设一个有滑动条控制的播放器--转

    (一)问题的提出:

    OpenCV有一个很简单的播放视频文件并加载滑动条的程序,但是如何用MFC对话框来创建一个有滑动条控制的播放器呢,网络上四处搜索都没有代码可以参考,下的都是些骗子链接文件,很过分,一点参考价值都没有,怎么办?

    (二)解决的思路:

    1.自己进行研究,不指望网络有现成的馅饼,因为那里多了去的陷阱,很可恶。

    2.要解决的关键问题是slider滑动条控件如何与视频播放实时结合在一起:

      ①主窗体的OnHScroll()响应函数负责响应slider滑动条的变化,这样就轻松搞定slider控件与拖动滑动条动作与视频播放的联动。

      ②新建虚拟的slider实例和slider滑动位置的全局变量,通过数据交换函数予以关系绑定

      ③通过OpenCV的函数cvSetCaptureProperty()和slider滑动位置全局变量来确定指向视频的哪个帧位置,并进行加载显示到Picture控件中

    (三)问题的解决:

    1.编写完了程序,在程序中添加了如下注释代码:

    //////////////////////////////////////////////////////////////////////
    // VideoPlayer
    // Author: Weilin Huang (19894644@qq.com)
    // Last modification: May 16, 2012
    //////////////////////////////////////////////////////////////////////


    //////////////////////////////////////////////////////////////////////
    // 使用说明:
    //   1. 安装VS2008
    //   2. 安装OpenCV2.0
    //   3. 安装cmake2.8.6
    //   4. 通过cmake生成可以被VC++ 2008调用的OpenCV动态库
    //   5. 配置Windows环境变量Path,将OpenCV2.0安装后的bin文件夹目录添加入用户变量
    //      使得Path=.../bin
    //      (...是OpenCV2.0安装后的program files下的目录全路径)
    //   6. 打开VC++ 2008,菜单中的工具→选项→项目和解决方案→VC++目录
    //      在显示以下内容的目录中,
    //      先选中可执行文件,加入目录...in
    //      再选中包含文件,加入目录...includeopencv 
    //      再选中库文件,加入目录...lib
    //      (...是OpenCV2.0安装后的program files下的目录全路径)
    //   7. 新建MFC对话框项目VideoPlayer
    //      然后再在它的属性里去掉更换Unicode的字符集为多字节集
    //      配置链接器的输入依赖项cxcore200.lib cv200.lib highgui200.lib
    //   8. 或者是不进行7的操作,直接将本程序对新建的VideoPlayer对话框项目进行覆盖
    //      然后再对其中的VideoPlayer对话框项目配置属性进行修改
    //////////////////////////////////////////////////////////////////////

    //////////////////////////////////////////////////////////////////////
    // 功能说明:
    //   1. slider控件、Picture控件、打开按钮、播放按钮、暂停按钮、停止按钮
    //   2. 实现视频的加载、播放、暂停、停止,以及通过滑动条进行视频播放进度的控制
    //////////////////////////////////////////////////////////////////////

    //////////////////////////////////////////////////////////////////////
    // 存在的问题:
    //   1. 有些视频并不是有多少帧就多少帧结尾
    //      比如用屏幕录像机录像的avi,比如录了帧,它有时会丢帧,
    //      丢帧的那个位置,无法用IplImage的图像空间来加载视图,那程序调试就会报错
    //   2. 基本的功能都实现了,就缺验证它的执行效率,还有是否会存在内存泄漏
    //////////////////////////////////////////////////////////////////////

    2.程序打包成VideoPlayer.rar(压缩包内除了完整程序还包括了文件cmake-2.8.6-win32-x86.exe和OpenCV-2.0.0a-win32.exe),放置到如下位置:

     http://download.csdn.net/detail/huanghanyu11/4311846

      解压缩密码为huangweilin

     

    from:http://www.cnblogs.com/huangweilin/archive/2012/05/18/2507764.html

  • 相关阅读:
    手把手教你在CSDN博客中插入图片之剑走偏锋系列
    PCD文件格式详解及在PCL下读取PCD文件
    C 基于数组存储的堆栈实现
    C++ Opencv remap()重映射函数详解及使用示例
    C 线性表的链式存储实现及插入、删除等操作示例
    C 线性表的顺序存储实现及插入、删除等操作示例
    C 单向链表就地逆转
    C 单向链表的创建、插入及删除
    [C#]SQL Server Express LocalDb(SqlLocalDb)的一些体会
    [C#]关于DataDirectory的一些思考
  • 原文地址:https://www.cnblogs.com/lidabo/p/3396133.html
Copyright © 2011-2022 走看看