OpenCV视频I/O(6)检查视频捕获对象是否已成功打开的函数isOpened()的使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

如果视频捕获已经初始化,则返回 true。

如果之前调用 VideoCapture 构造函数或 VideoCapture::open() 成功,则该方法返回 true。

isOpened 函数是 OpenCV 中 VideoCapture 类的一个成员函数,用于检查视频捕获对象是否已成功打开并准备好进行读取或捕获操作。

函数原型

cpp 复制代码
virtual bool cv::VideoCapture::isOpened	()	const

参数

此函数不接受任何参数

返回值

类型:bool

描述:返回值指示视频捕获对象是否已成功打开。如果返回 true,则表示对象已成功打开;如果返回 false,则表示对象尚未打开或已关闭。

代码示例

cpp 复制代码
#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;
}

运行结果

输出的是一个实时视频窗口:

相关推荐
自不量力的A同学1 分钟前
Resemble AI 发布开源语音合成模型 Chatterbox Turbo
人工智能
Master_oid1 分钟前
机器学习28:增强式学习(Deep Reinforcement Learn)③
人工智能·学习·机器学习
PS1232324 分钟前
港口机械安全运行 风速监测技术守护物流畅通
人工智能
万俟淋曦4 分钟前
【论文速递】2025年第51周(Dec-14-20)(Robotics/Embodied AI/LLM)
人工智能·深度学习·机器人·大模型·论文·robotics·具身智能
汗流浃背了吧,老弟!5 分钟前
基于 BERT 的指令微调
人工智能·深度学习·bert
Jerryhut8 分钟前
Opencv总结8——停车场项目实战
人工智能·opencv·计算机视觉
WWZZ20259 分钟前
SLAM进阶——数据集
人工智能·计算机视觉·机器人·大模型·slam·具身智能
、BeYourself10 分钟前
PGvector :在 Spring AI 中实现向量数据库存储与相似性搜索
数据库·人工智能·spring·springai
墨_浅-12 分钟前
分阶段训练金融大模型02-百度千帆实际步骤
人工智能·金融·百度云
明天好,会的13 分钟前
分形生成实验(三):Rust强类型驱动的后端分步实现与编译时契约
开发语言·人工智能·后端·rust