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

OpenCV下按視頻幀率(FPS)播放視頻

2012-11-15 04:50:26楊青錦
中國科技信息 2012年21期
關鍵詞:程序

楊青錦

東北財經大學津橋商學院, 大連 116023

OpenCV下按視頻幀率(FPS)播放視頻

楊青錦

東北財經大學津橋商學院, 大連 116023

本文闡述了如何在OpenCV下按視頻幀率(FPS)播放視頻。程序使用了Windows系統下的高精度計時器控制視頻播放的幀間隔時間。本文給出了高精度計時器的使用方法、實現時間控制功能的主要程序片段,并在文章的最后比較了高精度計時器與一般計時函數的精度。

OpenCV;幀率;高精度計時器;播放視頻

OpenCV; fps; high-resolution timer; play video

OpenCV是Intel公司資助的開源計算機視覺庫。它提供了幾百個C/C++函數,實現了計算機視覺領域中大部分最常用的算法。使用OpenCV開發計算機視覺應用程序,經常要讀取從攝像機獲得的視頻流或視頻文件,獲得其中的每一幀,再對該幀進行算法處理。如果要滿足程序交互性的需要,通常還要將算法處理過的幀按原視頻幀率(FPS, frame per second)顯示出來。OpenCV提供了視頻幀的讀取、顯示函數以及獲得視頻幀率屬性的函數,而按幀率決定的幀時間間隔顯示幀,則需要自己編程來解決。

在程序中,首先要取得視頻的幀率屬性,并由此計算出幀間隔時間,代碼如下:

CvCapture* cvCreateFileCapture( const char* filename )的參數是要讀取的文件名,函數返回指向CvCapture結構體的指針,該指針的作用類似于我們用fopen()函數打開文件,返回的指向FILE結構體的指針,之后我們可以通過這個指針操作視頻文件。如果程序是從攝像機讀取視頻,則用cvCreateCameraCapture()代替該函數。

double cvGetCaptureProperty( CvCapture* capture, int property_id )的作用是得到視頻的屬性信息,參數CV_ CAP_PROP_FPS要求函數返回幀率。用1000除以幀率,就得到了以毫秒為單位的幀間隔時間。

通常一個處理視頻的OpenCV程序主循環如下所示:

IplImage* cvQueryFrame( CvCapture* capture )的功能是順序讀取視頻的一幀,如果視頻結束,則返回的指針為NULL。程序接下來將對幀進行算法處理。在處理結束后,cvShowImage()將幀顯示在名為Video的窗口中。cvWaitKey(40)的作用是延時40毫秒。假如我們對每一幀不做任何算法處理,那么該循環體的功能,就是將該視頻以40毫秒的幀間隔(即25 fps)播放出來。然而在實際應用中,算法處理部分總會占用不定量的時間,所以延時固定時長的做法是不成立的。要使循環體的執行時間,即每一幀的處理時間,保持在幀率決定的幀間隔時間上,需要在循環體得首尾加入時間檢測代碼,即在開頭獲取開始時間,在末尾獲取結束時間,兩個時間的差值就是循環體執行時間。如果循環體執行時間小于幀間隔時間,則延時以確保循環體執行時間滿足應有的幀間隔時間。

在Windows操作系統下,我們用API函數QueryPerformanceFrequency()和QueryPerformanceCounter()進行時間檢測。這兩個函數的聲明如下:

QueryPerformanceFrequency()的輸出值lpFrequency指向系統內高精度性能計數器的頻率,QueryPerformanceCounter()的輸出值lpPerformanceCount指向調用時刻高精度性能計數器的計數。在使用時,兩次調用QueryPerformanceCounter(),所得結果的差值,除以QueryPerformanceFrequency()得到的頻率,就得到兩次調用的間隔時間。舉例來說,如QueryPerformanceFrequency()得到的高精度性能計數器的頻率是每秒50000次,先后兩次調用QueryPerformanceCounter()得到的值分別是1500和3500,那么兩次調用的時間間隔為(3500-1500)/50000=0.04秒。

上述兩個函數的參數都是 LARGE_ INTEGER* 類型,LARGE_INTEGER的定義如下:

由上可見,LARGE_INTEGER代表了一個64位的整數,在一般程序中,我們只需要使用其低32位,即DWORD LowPart。

實現時間控制功能的完整程序片段如下所示:

在一般的對實時性要求不高的程序中,常使用Windows API函數GetTickCount()獲取時間間隔。MSDN關于GetTickCount()的時間精度說明在10~16毫秒之間,這對于一般應用程序中的耗時計算是足夠的,但對于幀時間間隔在毫秒級的視頻播放來說,就顯得精度不足了。MSDN推薦了高精度計時器QueryPerformanceFrequency()和QueryPerformanceCounter()用于更高精度的計時,雖然MSDN沒有明確說明高精度計時器的所能達到的精度,因其精度取決于計算機處理器,但在筆者的實際應用中,高精度性能計數器完全可以滿足視頻播放的毫秒級精度。

最后補充一點,如果處理視頻的循環體執行時間大于原視頻的幀間隔時間,造成視頻不能按原幀率播放,則需要優化每幀的處理算法,使每幀的處理時間保持在限度之內,滿足實時性的需求。

[1]劉瑞禎,于仕琪.OpenCV教程 基礎篇. 北京北京航空航天大學出版社, 2007.

[2]Intel OpenCV1.0安裝包自帶幫助文檔.http:// opencvlibrary.sourceforge.net/,2007.

[3]Microsoft MSDN. http://msdn.microsoft.com/,4/10/2011.

How to play video at its original fps in OpenCV

Yang Qingjin
Kingbridge College of Dongbei University of Finance & Economics Dalian 116023

This article depicts how to play video at its original fps in OpenCV. The program uses highresolution timer of Windows system to play video at a certain frame interval. This article demonstrates the usage of high-resolution timer and the code segment implementing time control. In the end, this article compares the resolution between high-resolution timer and common timer function.

10.3969/j.issn.1001-8972.2012.21.032

楊青錦,1982,男,碩士,物流系統中的計算機視覺應用。

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 极品国产在线| 国产va在线观看免费| 久久狠狠色噜噜狠狠狠狠97视色 | 国产成人高清精品免费5388| 5555国产在线观看| 中文字幕亚洲专区第19页| 国产真实二区一区在线亚洲| 亚洲视频欧美不卡| 91欧洲国产日韩在线人成| 国产成人喷潮在线观看| 欧美日韩午夜| 欧美激情第一欧美在线| 视频在线观看一区二区| 日本在线视频免费| 日本道中文字幕久久一区| 999国内精品久久免费视频| 福利一区在线| 国产欧美日韩另类| 九九视频免费在线观看| 国产91高跟丝袜| 亚洲国产日韩视频观看| 99无码中文字幕视频| 欧美亚洲中文精品三区| 日本在线免费网站| 国产18页| 午夜日韩久久影院| 精品无码人妻一区二区| 亚洲一区二区三区在线视频| 国产一级在线观看www色| 日韩一区二区在线电影| 欧美日韩久久综合| 国产亚洲精久久久久久无码AV| 日韩精品毛片人妻AV不卡| 99热线精品大全在线观看| 亚洲三级视频在线观看| 欧美成人区| 九九热精品视频在线| 国产视频只有无码精品| 国产亚洲欧美日韩在线观看一区二区| 亚洲AⅤ永久无码精品毛片| 成人永久免费A∨一级在线播放| 特级毛片免费视频| 欧美在线黄| 高清视频一区| 日韩欧美中文字幕一本| 亚洲国产日韩一区| 四虎AV麻豆| 91青青在线视频| 国产午夜福利亚洲第一| 国产一区自拍视频| 蜜芽国产尤物av尤物在线看| 2022精品国偷自产免费观看| 日韩经典精品无码一区二区| 午夜少妇精品视频小电影| 毛片基地视频| 麻豆精品久久久久久久99蜜桃| 超薄丝袜足j国产在线视频| 国产在线观看一区精品| 97国内精品久久久久不卡| 日韩午夜福利在线观看| 国产精品成人一区二区| 国产网友愉拍精品| 日本午夜视频在线观看| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲va欧美ⅴa国产va影院| 亚洲成人一区在线| 最新国产高清在线| 丁香亚洲综合五月天婷婷| 日本91视频| 日韩在线中文| 又黄又湿又爽的视频| 国产在线观看高清不卡| 91黄视频在线观看| 欧美久久网| 青青国产视频| 婷婷色中文网| 久久综合亚洲鲁鲁九月天| 婷婷色中文网| 98超碰在线观看| 麻豆精品在线视频| 欧美亚洲国产精品第一页| 日本日韩欧美|