高群
摘要:針對(duì)DMD視頻播放需求,提出了一種基于OpenCV的視頻播放程序開發(fā)方法。利用面向?qū)ο箝_發(fā)平臺(tái)VC++6.0設(shè)計(jì)程序操作界面。調(diào)用OpenCV中封裝好的函數(shù)實(shí)現(xiàn)AVI格式視頻文件的讀取與預(yù)處理,將圖像幀轉(zhuǎn)換成DMD播放需要的特定灰度圖像。通過USB將轉(zhuǎn)換后的圖像傳送至DMD播放器播放,并在操作界面上實(shí)現(xiàn)視頻同步播放。
關(guān)鍵詞:OpenCV;DMD;VC++6.0;視頻播放程序;USB
中圖分類號(hào):TP37 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)34-8283-02
DMD (Digital Micromirror Device)[1-3]視頻播放程序開發(fā)工作量很大,它需要將普通視頻格式數(shù)據(jù)進(jìn)行讀取和處理操作。將每一幀數(shù)據(jù)轉(zhuǎn)換成DMD播放所需要的1024*768的8位深度的灰度圖像。如果視頻幀的讀取、拉伸變換、灰度轉(zhuǎn)換等程序都自己親手從底層去編寫,將會(huì)浪費(fèi)大量時(shí)間和精力。OpenCV[4-8]提供了非常豐富的開源圖像處理函數(shù),在VC++6.0 編譯環(huán)境下裝載OpenCV圖像處理算法庫,為機(jī)器視覺、數(shù)字圖像處理提供了極大的便利。
因此,該文提出了一種基于OpenCV的視頻播放程序開發(fā)的方法,通過調(diào)用OpenCV函數(shù)庫中的圖像處理函數(shù)實(shí)現(xiàn)視頻數(shù)據(jù)的一系列操作,縮短開發(fā)時(shí)間,提高科研工作效率。給出了DMD視頻播放程序開發(fā)實(shí)例,可以對(duì)任意格式AVI視頻數(shù)據(jù)實(shí)現(xiàn)讀取與圖像處理操作,最終實(shí)現(xiàn)DMD與操作程序界面同步播放。
1 系統(tǒng)功能需求
1.1視頻播放程序功能需求
視頻播放程序功能需求主要如下:
1) AVI視頻載入,選擇計(jì)算機(jī)上的AVI視頻載入到播放程序中;
2) 設(shè)置播放速度,即幀率,可以實(shí)時(shí)的控制視頻的播放速度;
3) 視頻播放的基本操作主要包括播放、停止與暫停;
4) 視頻USB通信狀態(tài)顯示,以便觀測視頻是否成功發(fā)送至DMD播放器。
1.2視頻播放程序工作流程
該DMD視頻播放軟件主要工作流程是:用戶載入計(jì)算機(jī)中的AVI格式視頻,讀取視頻的基本信息(主要是幀數(shù)),抽取需要播放的視頻幀圖像;先進(jìn)行線性拉伸變換轉(zhuǎn),將其換成1027*768大小的圖像,再將其轉(zhuǎn)換成8為灰度圖像;將設(shè)置播放速度,通過USB將該圖像數(shù)據(jù)傳送至DMD供其播放,同時(shí)將該幀圖像顯示到程序主界面的圖像控件中,實(shí)現(xiàn)視頻的同步播放。其基本操作流程圖如圖1所示。
2 視頻播放程序開發(fā)實(shí)例
開發(fā)環(huán)境:Windows XP Microsoft Visual C++ 6.0 OpenCV 2.0
在VC++ 6.0中創(chuàng)建基于對(duì)話框的MFC AppWizard(exe)工程,程序主界面如圖2所示。
1) 視頻播放與圖像顯示區(qū)域:顯示播放的視頻、圖像;
2) AVI播放控制:
① 點(diǎn)擊“打開”按鈕,彈出打開文件對(duì)話框,選擇要播放AVI視頻文件;
② 點(diǎn)擊“播放”按鈕開始播放視頻。點(diǎn)擊“暫?!卑粹o可以暫停播放,停止在當(dāng)前幀。再次點(diǎn)擊“播放”按鈕繼續(xù)播放。點(diǎn)擊“停止”按鈕,停止播放,并回到視頻第一幀;
③ 滑動(dòng)滑塊可以實(shí)時(shí)調(diào)節(jié)播放速度(15~25幀/秒);
3) 狀態(tài)顯示:顯示系統(tǒng)工作狀態(tài);
① USB連接測試時(shí),顯示是否連接成功;
② 播放視頻時(shí),顯示每一幀圖像是否發(fā)送成功;
③ 播放圖片時(shí),顯示圖片是否播放成功。
4) USB控制:USB連接測試、播放圖片、清空顯示、退出程序操作。
主要操作實(shí)現(xiàn)代碼如下:
① 打開AVI視頻操作:打開對(duì)話框查找計(jì)算機(jī)中AVI視頻文件
② 抽取播放幀圖像信息:
③ 幀圖像處理:將圖像轉(zhuǎn)換成8位1024*768大小灰度圖像
④ 操作界面視頻播放
⑤ USB傳送1024*768的8位灰度圖像至DMD播放
調(diào)用系統(tǒng)函數(shù)bOpenDriver (…)建立程序與DMD播放器的連接;通過DeviceIoControl(…)函數(shù)實(shí)現(xiàn)將圖像數(shù)據(jù)發(fā)送至DMD播放。
3 總結(jié)
本文介紹了基于OpenCV的DMD視頻播放程序開發(fā)實(shí)例,實(shí)現(xiàn)了AVI視頻數(shù)據(jù)的讀取、處理與實(shí)時(shí)播放。利用OpenCV中的函數(shù)使得視頻數(shù)據(jù)讀取、處理、播放問題變得簡單,大大節(jié)省了程序開發(fā)時(shí)間,具有很強(qiáng)的實(shí)用價(jià)值。
參考文獻(xiàn):
[1] 靜嫻,吳榮治.數(shù)字微鏡器件(DMD)[J].液晶與顯示,2003,18(6):445-449.
[2] 余卿,余曉芬,崔長彩.單光源雙光路激光并行共焦測量系統(tǒng)設(shè)計(jì)[J].光學(xué)精密工程,2013,21(2):281-286.
[3] 徐正平,王德江,黃厚田,等.數(shù)字微鏡器件視頻顯示性能分析[J].液晶與顯示,2013,28(2):255-260.
[4] 陳勝勇,劉盛等.基于OpenCV的計(jì)算機(jī)視覺技術(shù)實(shí)現(xiàn)[M].北京:科學(xué)技術(shù)出版社,2008.
[5] 劉瑞禎,于仕琪.OpenCV教程:基礎(chǔ)篇[M].北京:北京航空航天大學(xué)出版社,2007.
[6] 馬桂珍,朱玲贊,段麗.基于OpenCV的視頻應(yīng)用程序的開發(fā)方法[J].現(xiàn)代電子技術(shù),2007(2):65-88.
[7] 劉麗梅,鄭新武,陳永明,等.基于OpenCV 的圖像處理程序開發(fā)方法的研究[J].計(jì)算機(jī)技術(shù)應(yīng)用,2010(5):21-24.
[8] 郭暉,陳光.基于OpenCV 的視頻圖像處理應(yīng)用研究[J].微型機(jī)與應(yīng)用,2010(21):14-17.endprint
摘要:針對(duì)DMD視頻播放需求,提出了一種基于OpenCV的視頻播放程序開發(fā)方法。利用面向?qū)ο箝_發(fā)平臺(tái)VC++6.0設(shè)計(jì)程序操作界面。調(diào)用OpenCV中封裝好的函數(shù)實(shí)現(xiàn)AVI格式視頻文件的讀取與預(yù)處理,將圖像幀轉(zhuǎn)換成DMD播放需要的特定灰度圖像。通過USB將轉(zhuǎn)換后的圖像傳送至DMD播放器播放,并在操作界面上實(shí)現(xiàn)視頻同步播放。
關(guān)鍵詞:OpenCV;DMD;VC++6.0;視頻播放程序;USB
中圖分類號(hào):TP37 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)34-8283-02
DMD (Digital Micromirror Device)[1-3]視頻播放程序開發(fā)工作量很大,它需要將普通視頻格式數(shù)據(jù)進(jìn)行讀取和處理操作。將每一幀數(shù)據(jù)轉(zhuǎn)換成DMD播放所需要的1024*768的8位深度的灰度圖像。如果視頻幀的讀取、拉伸變換、灰度轉(zhuǎn)換等程序都自己親手從底層去編寫,將會(huì)浪費(fèi)大量時(shí)間和精力。OpenCV[4-8]提供了非常豐富的開源圖像處理函數(shù),在VC++6.0 編譯環(huán)境下裝載OpenCV圖像處理算法庫,為機(jī)器視覺、數(shù)字圖像處理提供了極大的便利。
因此,該文提出了一種基于OpenCV的視頻播放程序開發(fā)的方法,通過調(diào)用OpenCV函數(shù)庫中的圖像處理函數(shù)實(shí)現(xiàn)視頻數(shù)據(jù)的一系列操作,縮短開發(fā)時(shí)間,提高科研工作效率。給出了DMD視頻播放程序開發(fā)實(shí)例,可以對(duì)任意格式AVI視頻數(shù)據(jù)實(shí)現(xiàn)讀取與圖像處理操作,最終實(shí)現(xiàn)DMD與操作程序界面同步播放。
1 系統(tǒng)功能需求
1.1視頻播放程序功能需求
視頻播放程序功能需求主要如下:
1) AVI視頻載入,選擇計(jì)算機(jī)上的AVI視頻載入到播放程序中;
2) 設(shè)置播放速度,即幀率,可以實(shí)時(shí)的控制視頻的播放速度;
3) 視頻播放的基本操作主要包括播放、停止與暫停;
4) 視頻USB通信狀態(tài)顯示,以便觀測視頻是否成功發(fā)送至DMD播放器。
1.2視頻播放程序工作流程
該DMD視頻播放軟件主要工作流程是:用戶載入計(jì)算機(jī)中的AVI格式視頻,讀取視頻的基本信息(主要是幀數(shù)),抽取需要播放的視頻幀圖像;先進(jìn)行線性拉伸變換轉(zhuǎn),將其換成1027*768大小的圖像,再將其轉(zhuǎn)換成8為灰度圖像;將設(shè)置播放速度,通過USB將該圖像數(shù)據(jù)傳送至DMD供其播放,同時(shí)將該幀圖像顯示到程序主界面的圖像控件中,實(shí)現(xiàn)視頻的同步播放。其基本操作流程圖如圖1所示。
2 視頻播放程序開發(fā)實(shí)例
開發(fā)環(huán)境:Windows XP Microsoft Visual C++ 6.0 OpenCV 2.0
在VC++ 6.0中創(chuàng)建基于對(duì)話框的MFC AppWizard(exe)工程,程序主界面如圖2所示。
1) 視頻播放與圖像顯示區(qū)域:顯示播放的視頻、圖像;
2) AVI播放控制:
① 點(diǎn)擊“打開”按鈕,彈出打開文件對(duì)話框,選擇要播放AVI視頻文件;
② 點(diǎn)擊“播放”按鈕開始播放視頻。點(diǎn)擊“暫?!卑粹o可以暫停播放,停止在當(dāng)前幀。再次點(diǎn)擊“播放”按鈕繼續(xù)播放。點(diǎn)擊“停止”按鈕,停止播放,并回到視頻第一幀;
③ 滑動(dòng)滑塊可以實(shí)時(shí)調(diào)節(jié)播放速度(15~25幀/秒);
3) 狀態(tài)顯示:顯示系統(tǒng)工作狀態(tài);
① USB連接測試時(shí),顯示是否連接成功;
② 播放視頻時(shí),顯示每一幀圖像是否發(fā)送成功;
③ 播放圖片時(shí),顯示圖片是否播放成功。
4) USB控制:USB連接測試、播放圖片、清空顯示、退出程序操作。
主要操作實(shí)現(xiàn)代碼如下:
① 打開AVI視頻操作:打開對(duì)話框查找計(jì)算機(jī)中AVI視頻文件
② 抽取播放幀圖像信息:
③ 幀圖像處理:將圖像轉(zhuǎn)換成8位1024*768大小灰度圖像
④ 操作界面視頻播放
⑤ USB傳送1024*768的8位灰度圖像至DMD播放
調(diào)用系統(tǒng)函數(shù)bOpenDriver (…)建立程序與DMD播放器的連接;通過DeviceIoControl(…)函數(shù)實(shí)現(xiàn)將圖像數(shù)據(jù)發(fā)送至DMD播放。
3 總結(jié)
本文介紹了基于OpenCV的DMD視頻播放程序開發(fā)實(shí)例,實(shí)現(xiàn)了AVI視頻數(shù)據(jù)的讀取、處理與實(shí)時(shí)播放。利用OpenCV中的函數(shù)使得視頻數(shù)據(jù)讀取、處理、播放問題變得簡單,大大節(jié)省了程序開發(fā)時(shí)間,具有很強(qiáng)的實(shí)用價(jià)值。
參考文獻(xiàn):
[1] 靜嫻,吳榮治.數(shù)字微鏡器件(DMD)[J].液晶與顯示,2003,18(6):445-449.
[2] 余卿,余曉芬,崔長彩.單光源雙光路激光并行共焦測量系統(tǒng)設(shè)計(jì)[J].光學(xué)精密工程,2013,21(2):281-286.
[3] 徐正平,王德江,黃厚田,等.數(shù)字微鏡器件視頻顯示性能分析[J].液晶與顯示,2013,28(2):255-260.
[4] 陳勝勇,劉盛等.基于OpenCV的計(jì)算機(jī)視覺技術(shù)實(shí)現(xiàn)[M].北京:科學(xué)技術(shù)出版社,2008.
[5] 劉瑞禎,于仕琪.OpenCV教程:基礎(chǔ)篇[M].北京:北京航空航天大學(xué)出版社,2007.
[6] 馬桂珍,朱玲贊,段麗.基于OpenCV的視頻應(yīng)用程序的開發(fā)方法[J].現(xiàn)代電子技術(shù),2007(2):65-88.
[7] 劉麗梅,鄭新武,陳永明,等.基于OpenCV 的圖像處理程序開發(fā)方法的研究[J].計(jì)算機(jī)技術(shù)應(yīng)用,2010(5):21-24.
[8] 郭暉,陳光.基于OpenCV 的視頻圖像處理應(yīng)用研究[J].微型機(jī)與應(yīng)用,2010(21):14-17.endprint
摘要:針對(duì)DMD視頻播放需求,提出了一種基于OpenCV的視頻播放程序開發(fā)方法。利用面向?qū)ο箝_發(fā)平臺(tái)VC++6.0設(shè)計(jì)程序操作界面。調(diào)用OpenCV中封裝好的函數(shù)實(shí)現(xiàn)AVI格式視頻文件的讀取與預(yù)處理,將圖像幀轉(zhuǎn)換成DMD播放需要的特定灰度圖像。通過USB將轉(zhuǎn)換后的圖像傳送至DMD播放器播放,并在操作界面上實(shí)現(xiàn)視頻同步播放。
關(guān)鍵詞:OpenCV;DMD;VC++6.0;視頻播放程序;USB
中圖分類號(hào):TP37 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)34-8283-02
DMD (Digital Micromirror Device)[1-3]視頻播放程序開發(fā)工作量很大,它需要將普通視頻格式數(shù)據(jù)進(jìn)行讀取和處理操作。將每一幀數(shù)據(jù)轉(zhuǎn)換成DMD播放所需要的1024*768的8位深度的灰度圖像。如果視頻幀的讀取、拉伸變換、灰度轉(zhuǎn)換等程序都自己親手從底層去編寫,將會(huì)浪費(fèi)大量時(shí)間和精力。OpenCV[4-8]提供了非常豐富的開源圖像處理函數(shù),在VC++6.0 編譯環(huán)境下裝載OpenCV圖像處理算法庫,為機(jī)器視覺、數(shù)字圖像處理提供了極大的便利。
因此,該文提出了一種基于OpenCV的視頻播放程序開發(fā)的方法,通過調(diào)用OpenCV函數(shù)庫中的圖像處理函數(shù)實(shí)現(xiàn)視頻數(shù)據(jù)的一系列操作,縮短開發(fā)時(shí)間,提高科研工作效率。給出了DMD視頻播放程序開發(fā)實(shí)例,可以對(duì)任意格式AVI視頻數(shù)據(jù)實(shí)現(xiàn)讀取與圖像處理操作,最終實(shí)現(xiàn)DMD與操作程序界面同步播放。
1 系統(tǒng)功能需求
1.1視頻播放程序功能需求
視頻播放程序功能需求主要如下:
1) AVI視頻載入,選擇計(jì)算機(jī)上的AVI視頻載入到播放程序中;
2) 設(shè)置播放速度,即幀率,可以實(shí)時(shí)的控制視頻的播放速度;
3) 視頻播放的基本操作主要包括播放、停止與暫停;
4) 視頻USB通信狀態(tài)顯示,以便觀測視頻是否成功發(fā)送至DMD播放器。
1.2視頻播放程序工作流程
該DMD視頻播放軟件主要工作流程是:用戶載入計(jì)算機(jī)中的AVI格式視頻,讀取視頻的基本信息(主要是幀數(shù)),抽取需要播放的視頻幀圖像;先進(jìn)行線性拉伸變換轉(zhuǎn),將其換成1027*768大小的圖像,再將其轉(zhuǎn)換成8為灰度圖像;將設(shè)置播放速度,通過USB將該圖像數(shù)據(jù)傳送至DMD供其播放,同時(shí)將該幀圖像顯示到程序主界面的圖像控件中,實(shí)現(xiàn)視頻的同步播放。其基本操作流程圖如圖1所示。
2 視頻播放程序開發(fā)實(shí)例
開發(fā)環(huán)境:Windows XP Microsoft Visual C++ 6.0 OpenCV 2.0
在VC++ 6.0中創(chuàng)建基于對(duì)話框的MFC AppWizard(exe)工程,程序主界面如圖2所示。
1) 視頻播放與圖像顯示區(qū)域:顯示播放的視頻、圖像;
2) AVI播放控制:
① 點(diǎn)擊“打開”按鈕,彈出打開文件對(duì)話框,選擇要播放AVI視頻文件;
② 點(diǎn)擊“播放”按鈕開始播放視頻。點(diǎn)擊“暫?!卑粹o可以暫停播放,停止在當(dāng)前幀。再次點(diǎn)擊“播放”按鈕繼續(xù)播放。點(diǎn)擊“停止”按鈕,停止播放,并回到視頻第一幀;
③ 滑動(dòng)滑塊可以實(shí)時(shí)調(diào)節(jié)播放速度(15~25幀/秒);
3) 狀態(tài)顯示:顯示系統(tǒng)工作狀態(tài);
① USB連接測試時(shí),顯示是否連接成功;
② 播放視頻時(shí),顯示每一幀圖像是否發(fā)送成功;
③ 播放圖片時(shí),顯示圖片是否播放成功。
4) USB控制:USB連接測試、播放圖片、清空顯示、退出程序操作。
主要操作實(shí)現(xiàn)代碼如下:
① 打開AVI視頻操作:打開對(duì)話框查找計(jì)算機(jī)中AVI視頻文件
② 抽取播放幀圖像信息:
③ 幀圖像處理:將圖像轉(zhuǎn)換成8位1024*768大小灰度圖像
④ 操作界面視頻播放
⑤ USB傳送1024*768的8位灰度圖像至DMD播放
調(diào)用系統(tǒng)函數(shù)bOpenDriver (…)建立程序與DMD播放器的連接;通過DeviceIoControl(…)函數(shù)實(shí)現(xiàn)將圖像數(shù)據(jù)發(fā)送至DMD播放。
3 總結(jié)
本文介紹了基于OpenCV的DMD視頻播放程序開發(fā)實(shí)例,實(shí)現(xiàn)了AVI視頻數(shù)據(jù)的讀取、處理與實(shí)時(shí)播放。利用OpenCV中的函數(shù)使得視頻數(shù)據(jù)讀取、處理、播放問題變得簡單,大大節(jié)省了程序開發(fā)時(shí)間,具有很強(qiáng)的實(shí)用價(jià)值。
參考文獻(xiàn):
[1] 靜嫻,吳榮治.數(shù)字微鏡器件(DMD)[J].液晶與顯示,2003,18(6):445-449.
[2] 余卿,余曉芬,崔長彩.單光源雙光路激光并行共焦測量系統(tǒng)設(shè)計(jì)[J].光學(xué)精密工程,2013,21(2):281-286.
[3] 徐正平,王德江,黃厚田,等.數(shù)字微鏡器件視頻顯示性能分析[J].液晶與顯示,2013,28(2):255-260.
[4] 陳勝勇,劉盛等.基于OpenCV的計(jì)算機(jī)視覺技術(shù)實(shí)現(xiàn)[M].北京:科學(xué)技術(shù)出版社,2008.
[5] 劉瑞禎,于仕琪.OpenCV教程:基礎(chǔ)篇[M].北京:北京航空航天大學(xué)出版社,2007.
[6] 馬桂珍,朱玲贊,段麗.基于OpenCV的視頻應(yīng)用程序的開發(fā)方法[J].現(xiàn)代電子技術(shù),2007(2):65-88.
[7] 劉麗梅,鄭新武,陳永明,等.基于OpenCV 的圖像處理程序開發(fā)方法的研究[J].計(jì)算機(jī)技術(shù)應(yīng)用,2010(5):21-24.
[8] 郭暉,陳光.基于OpenCV 的視頻圖像處理應(yīng)用研究[J].微型機(jī)與應(yīng)用,2010(21):14-17.endprint