用c++实现cv2.VideoCapture(video_path)
时间: 2023-12-10 17:40:53 浏览: 71
在 C++ 中实现 `cv2.VideoCapture(video_path)` 的功能需要使用 OpenCV 库。下面是一个示例代码:
```c++
#include <opencv2/opencv.hpp>
int main()
{
cv::VideoCapture cap("video.mp4");
if (!cap.isOpened())
{
std::cout << "Could not open video file." << std::endl;
return -1;
}
while (true)
{
cv::Mat frame;
cap >> frame;
if (frame.empty())
{
std::cout << "End of video." << std::endl;
break;
}
cv::imshow("Video", frame);
// Press 'q' to quit
if (cv::waitKey(25) == 'q')
{
break;
}
}
return 0;
}
```
在该代码中,我们首先创建了一个 `cv::VideoCapture` 对象,将视频文件路径作为参数传递给构造函数。然后,我们使用 `cap.isOpened()` 检查视频是否成功打开。如果视频无法打开,程序将输出错误消息并退出。
接下来,我们使用一个无限循环,每次从视频中读取一帧,并将其显示在窗口中。如果读取的帧为空,则表示视频已经结束,程序将输出消息并退出。
最后,我们使用 `cv::waitKey()` 等待用户按下键盘。如果用户按下键盘上的 'q' 键,程序将跳出循环并退出。
阅读全文