设计opencv函数返回视频当前帧图像用C++实现
以下是一个示例代码,可以使用OpenCV库获取视频文件的每一帧并显示:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
// 打开视频文件
VideoCapture cap("test.mp4");
if (!cap.isOpened()) {
cout << "无法打开视频文件" << endl;
return -1;
}
// 获取视频帧率
double fps = cap.get(CAP_PROP_FPS);
// 创建窗口
namedWindow("Video", WINDOW_NORMAL);
// 循环读取每一帧并显示
while (true) {
Mat frame;
bool ok = cap.read(frame);
if (!ok) {
cout << "读取视频帧失败" << endl;
break;
}
imshow("Video", frame);
waitKey(1000 / fps);
}
// 释放资源
cap.release();
destroyAllWindows();
return 0;
}
这个示例代码通过VideoCapture类打开视频文件,并使用read函数读取每一帧图像。imshow函数用于显示图像,waitKey函数用于等待一段时间,以便视频可以以正确的速率播放。最后,通过release函数释放资源并关闭窗口
原文地址: https://www.cveoy.top/t/topic/fnxo 著作权归作者所有。请勿转载和采集!