C++ opencv 获取视频的第30帧
时间: 2023-11-27 15:51:31 浏览: 69
你可以使用 OpenCV 库中的 `VideoCapture` 类来读取视频,并使用 `set` 函数来设置要读取的帧数。以下是一个简单的示例代码,读取视频的第 30 帧并显示在窗口中:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
VideoCapture cap("video.mp4"); // 打开视频文件
if (!cap.isOpened()) { // 检查是否成功打开
return -1;
}
int frameToRead = 30; // 要读取的帧数
cap.set(CAP_PROP_POS_FRAMES, frameToRead); // 设置要读取的帧数
Mat frame;
while (cap.read(frame)) { // 读取帧
imshow("Frame", frame); // 显示帧
waitKey(0); // 等待键盘输入
break; // 只显示一帧
}
cap.release(); // 关闭视频文件
destroyAllWindows(); // 关闭窗口
return 0;
}
```
在此示例代码中,我们首先使用 `VideoCapture` 类打开视频文件,然后设置要读取的帧数为 30。接下来,我们使用 `read` 函数读取每一帧,并使用 `imshow` 函数将其显示在窗口中。最后,我们等待键盘输入,然后关闭视频文件和窗口。
阅读全文