opencv获取视频某一帧的截图
时间: 2023-03-29 09:02:55 浏览: 191
qt6+opencv获取视频帧图像源码
可以使用opencv中的cv::VideoCapture类来获取视频的某一帧,然后使用cv::imwrite函数将该帧保存为图片。具体代码如下:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 打开视频文件
VideoCapture cap("video.mp4");
if (!cap.isOpened())
{
cerr << "Error opening video file" << endl;
return -1;
}
// 获取视频总帧数
int totalFrames = cap.get(CAP_PROP_FRAME_COUNT);
// 选择要截取的帧
int frameIndex = 100; // 选择第100帧
if (frameIndex < || frameIndex >= totalFrames)
{
cerr << "Invalid frame index" << endl;
return -1;
}
// 定位到要截取的帧
cap.set(CAP_PROP_POS_FRAMES, frameIndex);
// 读取该帧
Mat frame;
if (!cap.read(frame))
{
cerr << "Error reading frame" << endl;
return -1;
}
// 保存为图片
imwrite("frame.jpg", frame);
return ;
}
```
阅读全文