- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
如果视频捕获已经初始化,则返回 true。
如果之前调用 VideoCapture
构造函数或 VideoCapture::open()
成功,则该方法返回 true。
isOpened 函数是 OpenCV 中 VideoCapture 类的一个成员函数,用于检查视频捕获对象是否已成功打开并准备好进行读取或捕获操作。
函数原型
virtual bool cv::VideoCapture::isOpened () const
参数
此函数不接受任何参数
返回值
类型:bool
描述:返回值指示视频捕获对象是否已成功打开。如果返回 true,则表示对象已成功打开;如果返回 false,则表示对象尚未打开或已关闭。
代码示例
#include <iostream>
#include <opencv2/opencv.hpp>
int main()
{
// 使用默认摄像头(索引为 0),并指定使用默认后端
cv::VideoCapture cap( 0 );
// 检查是否成功打开了摄像头
if ( !cap.isOpened() )
{
std::cout << "Error opening video stream or file" << std::endl;
return -1;
}
// 循环读取并显示视频帧
while ( true )
{
// 从视频流中读取下一帧
cv::Mat frame;
cap >> frame; // 或者使用 cap.read(frame);
// 如果没有读取到帧,则退出循环
if ( frame.empty() )
{
std::cout << "No frame grabbed." << std::endl;
break;
}
// 显示视频帧
cv::imshow( "Camera Stream", frame );
// 按 'q' 键退出循环
if ( cv::waitKey( 1 ) == 'q' )
{
break;
}
}
// 释放资源
cap.release();
cv::destroyAllWindows();
return 0;
}
运行结果
输出的是一个实时视频窗口: