Обработка: количество кадров видео

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

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

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


person dionysosz    schedule 21.11.2013    source источник
comment
если вы знаете частоту кадров и продолжительность, это просто математика...   -  person v.k.    schedule 22.11.2013


Ответы (1)


Взгляните на класс 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);
}
person David Nilosek    schedule 21.11.2013