999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

視頻播放設(shè)備播放控制系統(tǒng)

2015-07-10 22:04:22曾昭紅
卷宗 2015年1期
關(guān)鍵詞:控制系統(tǒng)

曾昭紅

摘 要:近些年來,數(shù)字技術(shù)發(fā)展迅猛,數(shù)字影視隨之快速發(fā)展。其中,視頻播放設(shè)備的播放控制系統(tǒng)的作用十分關(guān)鍵。本文將以O(shè)penCV設(shè)備播放視頻的控制系統(tǒng)為例,主要就視頻播放設(shè)備播放控制系統(tǒng)展開研究。

關(guān)鍵詞:OpenCV設(shè)備;視頻播放;控制;系統(tǒng)

1 使用OpenCV設(shè)備播放視頻的控制系統(tǒng)

使用OpenCV播放視頻,幾乎與使用它來顯示圖像一樣容易。播放視頻時(shí)只需要處理的新問題就是如何循環(huán)地順序讀取視頻中的每一幀,以及如何從枯燥的電影視頻的讀取中退出該循環(huán)操作。具體如例1所示。

例1:下列簡(jiǎn)單的OpenCV程序,用于播放硬盤中的視頻文件。

#include “highgui.h”int main ( int argc, char** argv ) { cvNamedWindow ( “Example2”, CV_WINDOW_AUTOSIZE );CvCapture* capture = cvCreateFileCapture ( argv[1] );IplImage* frame;while ( 1 ) { frame = cvQueryFrame ( capture );if ( !frame ) break;cvShowImage ( “Example2”, frame );char c = cvWaitKey ( 33 );if ( c == 27 ) break; } cvReleaseCapture ( &capture ); cvDestroyWindow ( “Example2” ); }

這里我們還是通過前面的方法創(chuàng)建一個(gè)命名窗口,在"例2"中,事情變得更加有趣了。

CvCapture* capture = cvCreateFileCapture ( argv[1] );

函數(shù)cvCreateFileCapture ( )通過參數(shù)設(shè)置確定要讀入的AVI文件,返回一個(gè)指向CvCapture結(jié)構(gòu)的指針。這個(gè)結(jié)構(gòu)包括了所有關(guān)于要讀入AVI文件的信息,其中包含狀態(tài)信息。在調(diào)用這個(gè)函數(shù)后,返回指針?biāo)赶虻腃vCapture結(jié)構(gòu)被初始化到所對(duì)應(yīng)AVI文件的開頭。

frame = cvQueryFrame ( capture );

一旦進(jìn)入while ( 1 )循環(huán),我們便開始讀入AVI文件,cvQueryFrame的參數(shù)為CvCapture結(jié)構(gòu)的指針。用來將下一幀視頻文件載入內(nèi)存 ( 實(shí)際是填充或更新CvCapture結(jié)構(gòu)中 )。返回一個(gè)對(duì)應(yīng)當(dāng)前幀的指針。與cvLoadImage不同的是,cvLoadImage為圖像分配內(nèi)存空間,而cvQueryFrame使用已經(jīng)在cvCapture結(jié)構(gòu)中分配好的內(nèi)存。這樣的話,就沒有必要通過cvReleaseImage ( )對(duì)這個(gè)返回的圖像指針進(jìn)行釋放,當(dāng)CvCapture結(jié)構(gòu)被釋放后,每一幀圖像所對(duì)應(yīng)的內(nèi)存空間即會(huì)被釋放。

c = cvWaitKey ( 33 ); if ( c == 27 ) break;

當(dāng)前幀被顯示后,我們會(huì)等待33 ms。 [11]如果其間用戶觸發(fā)了一個(gè)按鍵,c會(huì)被設(shè)置成這個(gè)按鍵的ASCII碼,否則,c會(huì)被設(shè)置成-1。如果用戶觸發(fā)了ESC鍵 ( ASCII 27 ),循環(huán)被退出,讀入視頻停止。否則33 ms以后繼續(xù)執(zhí)行循環(huán)。

需要指出的是,在這個(gè)簡(jiǎn)單的例子程序中,我們沒有使用任何準(zhǔn)確的方法來控制視頻幀率。我們只是簡(jiǎn)單的通過cvWaitKey來以固定時(shí)間間隔載入幀圖像,在一個(gè)精度要求更高的程序中,通過從CvCapture結(jié)構(gòu)體中讀取實(shí)際幀率是一個(gè)更好的方法!

cvReleaseCapture ( &capture );

例1所實(shí)現(xiàn)的AVI播放器無法在視頻播放時(shí)進(jìn)行快速拖動(dòng)。我們的下一個(gè)任務(wù)就是通過加入一個(gè)滾動(dòng)條來實(shí)現(xiàn)這個(gè)功能。

我們通過調(diào)用cvCreateTrackbar ( )來創(chuàng)建一個(gè)滾動(dòng)條,并且通過設(shè)置參數(shù)確定滾動(dòng)條所屬于的窗口。為了獲得所需的功能,只需要提供一個(gè)回調(diào)函數(shù)。具體如例2所示.

例2:用來添加滾動(dòng)條到基本瀏覽窗口的程序:拖動(dòng)滾動(dòng)條,函數(shù)onTrackSlide ( )便被調(diào)用并被傳入滾動(dòng)條新的狀態(tài)值

#include “cv.h”#include “highgui.h”int g_slider_position = 0;CvCapture*g_capture= NULL;void onTrackbarSlide ( int pos ) { cvSetCaptureProperty ( g_capture,CV_CAP_PROP_POS_FRAMES,pos ); } int main ( int argc, char** argv ) { cvNamedWindow ( “Example3”, CV_WINDOW_AUTOSIZE );g_capture = cvCreateFileCapture ( argv[1] );int frames = ( int ) cvGetCaptureProperty ( g_capture,CV_CAP_PROP_FRAME_COUNT );if ( frames!= 0 ) { cvCreateTrackbar ( “Position”,”Example3”,&g_slider_position,frames,onTrackbarSlide ); } IplImage* frame;// While loop ( as in Example 2 ) capture & show video ... // Release memory and destroy window...return ( 0 ); }

從本質(zhì)上說,這種方法是通過添加一個(gè)全局變量來表示滾動(dòng)條位置并且添加一個(gè)回調(diào)函數(shù)更新變量以及重新設(shè)置視頻讀入位置。我們通過一個(gè)調(diào)用來創(chuàng)建滾動(dòng)條和確定回調(diào)函數(shù) 。下面讓我們看看細(xì)節(jié)。

int gslider_position = 0; CvCapture* g_capture = NULL;

首先為滾動(dòng)條位置定義一個(gè)全局變量。由于回調(diào)函數(shù)需要使用CvCapture對(duì)象,因此我們將它定義為全局變量。為了使我們的程序可讀性更強(qiáng),我們?cè)谒腥肿兞棵Q前面加上g_。

void on Trackbar Slide ( int pos ) { cvSetCaptureProperty ( g_capture, CV_CAP_PROP_POS_FRAMES,pos );

現(xiàn)在我們定義一個(gè)回調(diào)函數(shù),使其在滾動(dòng)條被拖動(dòng)時(shí)調(diào)用。滾動(dòng)條的位置會(huì)被作為一個(gè)32位整數(shù)以參數(shù)形式傳入。

值得注意的是,通過HighGUI創(chuàng)建的滾動(dòng)條不像其他工具提供的滾動(dòng)條功能這么全面。當(dāng)然,也可以使用自己喜歡的其他窗口開發(fā)工具包來代替HighGUI,但是HighGUI可以較快地實(shí)現(xiàn)一些基本功能。

2 結(jié)束語

本文研究使用OpenCV設(shè)備播放視頻的控制系統(tǒng),旨在闡述視頻播放控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),重在參考。

參考文獻(xiàn)

[1]朱國(guó)華;數(shù)字放映設(shè)備常見故障處理[J];現(xiàn)代電影技術(shù);2010,(01).

[2] 王建華;視頻播放設(shè)備中的K系數(shù)指標(biāo)的測(cè)量及應(yīng)用[J];中國(guó)有線電視;2014, ( 19 ).

[3] 李相軍;騰訊QLV視頻如何移動(dòng)播放[J];電腦愛好者;2013, ( 07 ).

猜你喜歡
控制系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關(guān)于工程項(xiàng)目成本管理的分析
社會(huì)轉(zhuǎn)型期行政權(quán)控制的路徑探索
科技視界(2016年21期)2016-10-17 17:06:18
淺析應(yīng)收賬款的產(chǎn)生原因和對(duì)策
商(2016年27期)2016-10-17 05:41:05
會(huì)計(jì)預(yù)算控制現(xiàn)狀及方法
主站蜘蛛池模板: 欧美区一区二区三| 四虎精品国产永久在线观看| 国产成人精品三级| 制服丝袜亚洲| 亚洲AV无码乱码在线观看代蜜桃| 99久视频| 国产呦视频免费视频在线观看| 亚洲av综合网| 亚洲一区网站| 亚洲欧美成人影院| 亚洲91在线精品| 国产精品亚洲一区二区在线观看| 久久精品最新免费国产成人| 国产一级小视频| 久久精品最新免费国产成人| 精品久久高清| 亚洲精品成人福利在线电影| 9啪在线视频| 亚洲欧美日韩中文字幕在线一区| 欧美国产精品拍自| 国产国产人在线成免费视频狼人色| 一级不卡毛片| 国产人免费人成免费视频| 99激情网| 67194亚洲无码| 国产一二三区视频| 99视频在线观看免费| 日本高清视频在线www色| 久无码久无码av无码| 亚洲精选无码久久久| 亚洲精品老司机| 国产成在线观看免费视频| 色综合天天操| 日本午夜影院| 国产真实乱了在线播放| 一级毛片免费观看久| 久久综合九色综合97网| 本亚洲精品网站| 午夜在线不卡| 波多野结衣久久精品| 国内精品一区二区在线观看 | 女人av社区男人的天堂| 亚欧美国产综合| 无码区日韩专区免费系列| 亚洲福利视频一区二区| 国产农村精品一级毛片视频| 亚洲va在线∨a天堂va欧美va| 成人午夜福利视频| 成年av福利永久免费观看| 天天综合天天综合| 欧美激情二区三区| 天天综合网色| 制服无码网站| 999国内精品久久免费视频| AV网站中文| 成人福利在线免费观看| 国产精品不卡永久免费| 久久亚洲综合伊人| 亚洲国产天堂在线观看| 在线亚洲精品自拍| 国产精品私拍在线爆乳| 精品视频在线观看你懂的一区| 爱色欧美亚洲综合图区| 久久精品国产精品青草app| 亚洲免费三区| 在线高清亚洲精品二区| 青青草国产精品久久久久| 亚洲欧美精品日韩欧美| 在线观看网站国产| 国产亚洲现在一区二区中文| 国产高清免费午夜在线视频| 精品国产一二三区| 在线亚洲小视频| 国产成人精品视频一区二区电影| 久久香蕉国产线看观看式| 日本一区高清| av在线5g无码天天| 大陆国产精品视频| 日本一区二区不卡视频| 精品撒尿视频一区二区三区| 欧美日本在线播放| 天天激情综合|