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;
}
相关推荐
AI街潜水的八角8 分钟前
深度学习十种食物分类系统1:数据集说明(含下载链接)
人工智能·深度学习·分类
敷衍zgf9 分钟前
Ernie_health + ProtoNet + Supervised-Contrastive Learning实现小样本意图分类与槽位填充
人工智能·自然语言处理·数据挖掘
却道天凉_好个秋11 分钟前
OpenCV(二十三):透视变换
人工智能·opencv·计算机视觉
诸葛务农12 分钟前
光刻胶分类与特性:正性胶和负性胶以及SU-8厚胶和AZ 1500 系列光刻胶(下)
人工智能·光刻胶
逻极23 分钟前
Kiro 安全最佳实践:守护代理式 IDE 的 “防火墙”
ide·人工智能·安全·ai
Danceful_YJ23 分钟前
23.目标检测基础
人工智能·目标检测·计算机视觉
不要喷香水23 分钟前
26.java openCV4.x 入门-Imgproc之图像尺寸调整与区域提取
java·人工智能·opencv·计算机视觉
央链知播31 分钟前
何超谈“AI元宇宙将引领场景革命 “十五五”勾勒科技新蓝图”
人工智能·科技
CV视觉42 分钟前
AI 实战篇:用 LangGraph 串联 RAG+MCP Server,打造能直接操控 Jira 的智能体
人工智能·深度学习·机器学习·自然语言处理·langchain·prompt·jira
王道长服务器 | 亚马逊云42 分钟前
AWS + 发财CMS:高效采集站的新形态
服务器·网络·云计算·音视频·aws