OpenCV视频I/O(9)视频采集类VideoCapture之释放与视频捕获相关的所有资源函数release()的使用

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

算法描述

关闭视频文件或捕获设备。

该方法由随后的 VideoCapture::openVideoCapture 析构函数自动调用。

C 函数还释放内存并清除 *capture 指针。

cv::VideoCapture::release() 是 VideoCapture 类的一个成员函数,用于释放与视频捕获相关的所有资源。

函数原型

cpp 复制代码
virtual void cv::VideoCapture::release	()	

参数

此函数不接受任何参数

代码示例

cpp 复制代码
#include <iostream>
#include <opencv2/opencv.hpp>

int main()
{
    // 创建一个 VideoCapture 对象
    cv::VideoCapture cap;

    // 定义摄像头设备索引
    int cameraIndex = 0;  // 第一个摄像头设备

    // 尝试打开摄像头设备
    if ( !cap.open( cameraIndex, cv::CAP_ANY ) )
    {
        std::cout << "Failed to open camera at index: " << cameraIndex << std::endl;
        return -1;
    }

    // 检查是否成功打开了摄像头设备
    if ( !cap.isOpened() )
    {
        std::cout << "Error opening camera at index: " << cameraIndex << std::endl;
        return -1;
    }

    // 循环读取并显示视频帧
    while ( true )
    {
        // 创建一个 Mat 对象来存储视频帧
        cv::Mat frame;

        // 从视频流中读取下一帧
        if ( !cap.read( frame ) )
        {
            std::cout << "No frame grabbed." << std::endl;
            break;
        }

        // 检查是否成功读取到了帧
        if ( frame.empty() )
        {
            std::cout << "Frame is empty." << std::endl;
            break;
        }

        // 显示视频帧
        cv::imshow( "Camera Stream", frame );

        // 按 'q' 键退出循环
        if ( cv::waitKey( 1 ) == 'q' )
        {
            break;
        }
    }

    // 释放资源
    cap.release();
    cv::destroyAllWindows();

    return 0;
}
相关推荐
火山引擎开发者社区15 分钟前
告别长期密码:火山引擎云数据库 MySQL IAM 鉴权全解析
人工智能
火山引擎开发者社区18 分钟前
从仓库维护者到架构师|首个大规模真实仓库长程任务 SWE 数据集 DeNovoSWE 发布,火山引擎云沙箱提供支撑
人工智能
火山引擎开发者社区7 小时前
火山 DTS 正式支持 MySQL 同步到 Milvus , 解决业务库到向量库最后一公里
人工智能
火山引擎开发者社区7 小时前
@开发者,提前解锁 FORCE 原动力大会五大看点,限时赢取门票福利
人工智能
火山引擎开发者社区8 小时前
这个 Skill 让 Agent 从会理解到会执行,补齐移动 APP 执行最后一公里
人工智能
火山引擎开发者社区11 小时前
Agent Plan、Coding Plan限时优惠:2.5折畅享多模型!
人工智能
冬奇Lab12 小时前
AI Workflow 定义的四次演进:从 Markdown 到 JS 脚本,再到分布式多 Agent
javascript·人工智能·agent
冬奇Lab12 小时前
每日一个开源项目(第136篇):OpenMemory - 给 AI Agent 真正的认知记忆引擎
人工智能
黄啊码13 小时前
【黄啊码】微信 AI 把聊天功能和 Vibe Coding打通了,创业者:我又白干了
人工智能