处理:视频帧数

时间:2013-11-21 17:04:47

标签: opencv arraylist processing frames

1)有没有办法在我们加载之后但在播放之前知道视频的帧数???

2)另外我想从每一帧中取第一列。我想到的是读取整个视频并在我读取的每个帧中存储到ArrayList中,然后再次解析整个ArrayList并从每个帧中取出第一列。有没有更好的方法来做到这一点?

OpenCV中的任何功能都可以帮助???

1 个答案:

答案 0 :(得分: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);
}