利用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++目錄
// 在顯示以下內容的目錄中,
// 先選中可執行文件,加入目錄...\bin
// 再選中包含文件,加入目錄...\include\opencv
// 再選中庫文件,加入目錄...\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
RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成