cv::videocapture
时间: 2023-11-01 14:02:57 浏览: 109
cv::VideoCapture是OpenCV库中用于视频捕捉的类。它提供了各种方法来从摄像头、视频文件或流中捕捉帧。
使用cv::VideoCapture,我们可以轻松地打开一个摄像头并捕捉实时视频。例如,我们可以使用以下代码来打开默认摄像头:
```
cv::VideoCapture capture(0);
if (!capture.isOpened()) {
std::cout << "无法打开摄像头" << std::endl;
return -1;
}
cv::Mat frame;
while (true) {
capture.read(frame);
if (frame.empty()) {
std::cout << "无法获取帧" << std::endl;
break;
}
cv::imshow("视频", frame);
if (cv::waitKey(1) == 27) {
break;
}
}
capture.release();
cv::destroyAllWindows();
```
除了打开摄像头,我们还可以使用cv::VideoCapture来从视频文件中读取帧。例如,以下代码从视频文件中读取帧并显示它们:
```
cv::VideoCapture capture("video.mp4");
if (!capture.isOpened()) {
std::cout << "无法打开视频文件" << std::endl;
return -1;
}
cv::Mat frame;
while (true) {
capture.read(frame);
if (frame.empty()) {
std::cout << "无法获取帧" << std::endl;
break;
}
cv::imshow("视频", frame);
if (cv::waitKey(1) == 27) {
break;
}
}
capture.release();
cv::destroyAllWindows();
```
使用cv::VideoCapture,我们可以灵活地处理视频数据,从而进行各种图像处理、计算机视觉和机器学习任务。
阅读全文