opencv视频流取帧
时间: 2023-11-06 07:58:01 浏览: 137
在使用OpenCV提取视频流的每一帧时,你可以使用VideoCapture类。下面是一个示例代码,展示了如何使用OpenCV提取视频流的每一帧:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main() {
VideoCapture capture;
capture.open("D:/new_cv/opencv/sources/samples/data/vtest.avi");
if (!capture.isOpened()) {
cout << "无法打开视频" << endl;
return -1;
}
Mat frame;
while (capture.read(frame)) {
imshow("input", frame);
char c = waitKey(100);
if (c == 27) // 如果按下ESC键
break;
}
waitKey(0);
return 0;
}
在上述代码中,我们首先创建了一个VideoCapture对象,并使用open函数打开了视频文件。然后,我们使用read函数从视频流中读取每一帧,并使用imshow函数显示每一帧。最后,我们使用waitKey函数等待用户按下按键。按下ESC键后,程序退出。
阅读全文