2014-02-18 129 views
4

我正在使用視頻捕獲對象來捕獲和處理opencv/javacv中的視頻幀。 我不知道如何獲得幀速率。我想要一個計時器,在實時視頻捕捉過程中在後臺運行。它應該暫停在被檢測到的面上,並在稍後繼續。 由於haarcascade文件的處理,每個rame處理需要花費很多時間。如何調整幀頻。如何獲取視頻捕獲對象的每秒幀數/幀數

System.loadLibrary(Core.NATIVE_LIBRARY_NAME); 
    VideoCapture camera = new VideoCapture(0); 
+0

我不知道如何做到這一點在java中,但在C/C++我會用VideoCapture :: get(CV_CAP_PROP_FPS)看看這裏:http://docs.opencv.org/modules/highgui/ doc/reading_and_writing_images_and_video.html#videocapture-get – Engine

+0

謝謝我已經看到了這一點,但不可能在Java多數民衆贊成在這個問題。 – slaveCoder

回答

2

您可以提取VideoCapture像幀速率,幀的高度,邊框寬度等

cv::VideoCapture input_video; 
if(input_video.open(my_device)) 
{ 
    std::cout<<"Video file open "<<std::endl; 
} 
else 
{ 
    std::cout<<"Not able to Video file open "<<std::endl; 

} 
int fps = input_video.get(CV_CAP_PROP_FPS); 
int frameCount = input_video.get(CV_CAP_PROP_FRAME_COUNT); 
double fheight = input_video.get(CV_CAP_PROP_FRAME_HEIGHT); 
double fwidth = input_video.get(CV_CAP_PROP_FRAME_WIDTH); 
0

answer幫助我的各種參數。 Thre是constanst及其值的列表。只需將值放入VideoCaptures get()方法即可。防爆。 videoCapture.get(5),將返回視頻的FPS。