OpenCV处理指定帧画面
在使用OpenCV进行视频处理的项目中,有些时候需要对视频中的指定帧进行处理。最朴素的想法是读进视频流数据后,遍历至指定帧画面进行处理后返回。这显然存在严重的时间浪费,其实OpenCV的VideoCapture对象提供了直接访问视频指定帧画面的方法。一下对两种访问方式进行介绍,并给出两种方法处理时间的对比。
1. 循环遍历
#include <opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
string videoName = "./data/11.mp4";
VideoCapture cap(videoName);
Mat frame;
clock_t t1 = clock();
for (size_t i = 0; i < cap.get(CV_CAP_PROP_FRAME_COUNT); i++)
{