2013-11-21 3 views
0

1) Есть ли способ узнать количество кадров видео после его загрузки, но прежде чем играть в него?Обработка: Количество кадров видео

2) Также я хочу взять первый столбец из каждого кадра. Я подумал, что нужно прочитать все видео и сохранить в ArrayList каждый просматриваемый кадр, а затем снова проанализировать весь массив ArrayList и перенести первый столбец из каждого кадра. Есть ли более оптимальный способ сделать это?

Есть ли какая-либо функция в OpenCV, которая может помочь?

+0

, если вы знаете, частоту кадров и продолжительность, является только простой математикой ... –

+1

Http: //docs.opencv. орг/модули/highgui/DOC/reading_and_writing_images_and_video.html # VideoCapture-получить – scap3y

ответ

0

Посмотрите на класс VideoCapture в OpenCV. В частности, функция 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); 
} 
Смежные вопросы