是否可以使用 OpenCV 同时获取指向视频序列中两个不同帧的指针

Is it possible to get a pointer to two different frames in a video sequence at the same time with OpenCV?

本文关键字:两个 指针 OpenCV 可以使 获取 取指 是否 视频      更新时间:2023-10-16

您可以像这样访问视频序列中的特定帧:

capture.set(CV_CAP_PROP_POS_FRAMES, frame_num);
capture >> frame;

然后,您可以访问单独的框架,如下所示:

capture.set(CV_CAP_PROP_POS_FRAMES, frame_num - 20);
capture >> frame2;

但是,当您使用 CV_CAP_PROP_POS_FRAMES 设置 capture 属性时,它实际上移动了第一个指针并frame frame2最终指向包含相同值的相同数据。

我想要一个指向两者的指针,所以我不必克隆数据(昂贵的计算),但我可以在两个帧之间执行比较。 如何使用OpenCV做到这一点?

您可以复制第一帧:

Mat frame1 = frame.clone();