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;
}

运行结果

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

相关推荐
阳明山水2 分钟前
销量预测2025—2026:从模型竞赛到系统融合的范式转型
人工智能·深度学习·算法·机器学习·架构
阿雄不会写代码4 分钟前
【AI Agent】自学笔记
人工智能
克里斯蒂亚诺更新5 分钟前
Transformer(注意力机制)不按顺序-全盘扫描
人工智能·深度学习·transformer
呆呆槑_Xiong15 分钟前
国内GEO生成式引擎优化公司对比 2026
人工智能
Dawson Zhu15 分钟前
大语言模型的本质:从条件概率预测到能力涌现的技术剖析
人工智能·语言模型·架构·aigc·agi
gzkuijing16 分钟前
MDI1PRD23B7‑EQ|Novanta IMS一体化RS-485/422步进电机参数、选型要点与典型应用
人工智能·机器学习·编辑器
能源科技集21 分钟前
不止于“大”:远景动力(AESC)790Ah电芯以系统级思维重塑储能技术路线
人工智能
骥龙29 分钟前
模块五:n8n自动化工作流 + Ollama + Health-MCP
人工智能·ai编程
jonyleek33 分钟前
工业物联网边缘计算架构设计:从数据采集到本地决策
人工智能·物联网·边缘计算·工业物联网·边缘网关·jvs物联网平台·iot架构
桐盛科技34 分钟前
拒绝“漂绿”风险:基于边缘计算的碳排放数据清洗算法与实时校验逻辑
人工智能·算法·边缘计算