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;
}
相关推荐
呆呆敲代码的小Y几秒前
5 分钟上手 OpenMontage:把 AI 编程助手变成视频工作室
人工智能·aigc·音视频·ai视频生成·claude code·openmontage
ShallWeL17 分钟前
【机器学习】(30)—— 嵌入空间
人工智能·神经网络·机器学习·embedding
MindUp18 分钟前
AI辅助PPT生成工具实测:百度文库等平台在技术学习场景下的内容生成与排版能力对比
人工智能·百度·powerpoint
甲维斯18 分钟前
DeepSeekFlash前端依旧拉垮,而且变慢了很多!
前端·人工智能
console.log('npc')23 分钟前
OpenClaw 使用教程:开源 AI Agent 编排框架完全指南
人工智能·microsoft·ai编程·openclaw
独行侠影a24 分钟前
AI绘画与音乐:生成式艺术是创作还是抄袭?
人工智能
数字融合25 分钟前
黎阳之光一数字孪生多能源可视化系统管理技术
人工智能·自动化·virtualenv
puamac26 分钟前
LlamaFactory QLoRA SFT 微调实操指南
人工智能·llamafactory
米瑞格门窗27 分钟前
上海系统门窗哪个靠谱
大数据·人工智能·安全·家装·家装建材·系统门窗
奈斯先生Vector28 分钟前
大模型 Agentic Workflow 架构解构:异构 API 调度与 Token 路由的多模态系统设计
开发语言·前端·架构·prompt·aigc·音视频