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

运行结果

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

相关推荐
xiakq4 分钟前
2026 年八大 LLM API 横评:DeepSeek V4 vs GPT-4o vs Claude vs Gemini
人工智能·gpt·ai·claude
勤劳X码农4 分钟前
2026年四款免费配音轻量工具参数记录与实测数据
音视频
u0103055277 分钟前
Java图像处理实战指南
人工智能·1024程序员节
南极星10058 分钟前
2026电赛E题有感
python·opencv·电赛
铃木之影15 分钟前
Java 版本 RAG 示例(Spring AI + Milvus)
java·人工智能·spring
小马过河R15 分钟前
AI Coding应用上线安全实践指南
人工智能·安全·安全架构·engineering·ai coding·harness
@Mr_LiuYang16 分钟前
《深入理解 AI Agent:设计原理与工程实践 》实验2-1 本地大模型服务部署与工具调用
人工智能·大模型·本地化部署·深入理解ai agent
Zkaisen25 分钟前
第三章 · 大语言模型基础(详尽展开版)
人工智能·语言模型·自然语言处理
todoitbo28 分钟前
MongoDB迁移:从烟囱式部署走向 KES-AI 时代融合数据库架构
人工智能·mongodb·数据库架构·国产数据库·kingbasees
意图共鸣30 分钟前
意图共鸣科技8月6日正式发布《交互等效原理》——大模型下半场的工程哲学纲领
人工智能