2013-11-21 42 views
0

1)在我們加載之後但在播放之前,有沒有辦法知道視頻的幀數?處理:視頻的幀數

2)我也想從每一幀中取第一列。我想過的是讀取整個視頻並將每個讀取的幀存儲到ArrayList中,然後再次解析整個ArrayList並從每個幀中取出第一列。有沒有更好的方法來做到這一點?

在OpenCV中的任何功能,可以幫助?

+0

,如果你知道的幀速率和持續時間,僅僅是一個簡單的數學... –

+1

HTTP://docs.opencv。組織/模塊/ highgui/DOC/reading_and_writing_images_and_video.html#videocapture,得到 – scap3y

回答

0

看看OpenCV中的VideoCapture類。具體來說就是獲取視頻屬性的get函數。

您可以加載每個框架和第一列存儲這樣的:

//Video capture object 
cv::VideoCapture cap; 
cap.open("filename"); 

//Storage for video frames and columns 
cv::Mat frame; 
std::vector<cv::Mat> cols; 

//Get each frame 
while(true){ 
     //Load next frame 
     cap >> frame; 
     //If no frame, end of video 
     if(!frame.data) break; 

     //Store first column 
     cv::Mat col; 
     frame.col(0).copyTo(col); 
     cols.push_back(col); 
}