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

devtools/2024/10/18 14:27:48/
  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

关闭视频文件或捕获设备。
该方法由随后的 VideoCapture::openVideoCapture 析构函数自动调用。
C 函数还释放内存并清除 *capture 指针。

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

函数原型

virtual void cv::VideoCapture::release	()	

参数

此函数不接受任何参数

代码示例

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

http://www.ppmy.cn/devtools/122093.html

相关文章

Netty系列-7 Netty编解码器

背景 netty框架中&#xff0c;自定义解码器的起点是ByteBuf类型的消息, 自定义编码器的终点是ByteBuf类型。 1.解码器 业务解码器的起点是ByteBuf类型 netty中可以通过继承MessageToMessageEncoder类自定义解码器类。MessageToMessageEncoder继承自ChannelInboundHandlerAdap…

普渡PUDU MT1:AI赋能,破解大面积场景清洁新挑战

普渡AI智能扫地机器人PUDU MT1:破解大面积场景清洁难题的新利器 在仓储物流、工业车间、交通枢纽、大型商场等大面积场景中,清洁难题一直是管理者们头疼的问题。这些区域面积广阔,清洁任务繁重,传统清洁方式难以胜任。然而,普渡机器人最新推出的AI智能扫地机器人PUDU MT1…

设置参数说明

目录 设备连接基本设置电机设置控制设置保护设置保存并重启读取参数擦除参数并重启设备重启 设备连接 驱动板接入电脑后会虚拟为串口&#xff0c;点击“刷新”&#xff0c;选择对应的com&#xff0c;点击“连接设备”&#xff0c;软件左下角会提示“连接成功”。驱动板出厂默认…

大模型时代下小模型知多少?从模型结构、预训练数据到运行时成本分析总结

今天&#xff0c;我们来谈谈小模型。《Small Language Models综述&#xff0c;Small Language Models: Survey, Measurements, and Insights》&#xff1a;https://arxiv.org/pdf/2409.15790这个工作&#xff0c;会有一些启发。 本文主要介绍三个话题&#xff0c;一个是小模型…

滚雪球学Oracle[5.6讲]:资源管理与调优

全文目录&#xff1a; 前言一、Oracle Resource Manager的配置与使用1.1 什么是Oracle Resource Manager1.2 Oracle Resource Manager的优势1.3 配置Oracle Resource Manager案例演示&#xff1a;配置Resource Manager 二、基于服务的资源分配策略2.1 基于服务的资源管理典型场…

项目-坦克大战学习-控制人机发射子弹以及玩家受到攻击

控制人机发射子弹有几个条件&#xff0c;发射子弹的间隔以及攻击对象的筛选 我们前面已经将子弹生成程序写出来了&#xff0c;在子弹类中我们定义了枚举类型用来分辨是谁发射出来的子弹 玩家发射出来的子弹定义&#xff1a; duixiangweizhi.zidan(x, y, zidanen.wanjia, Fang…

助农小程序|助农扶贫系统|基于java的助农扶贫系统小程序设计与实现(源码+数据库+文档)

助农扶贫系统小程序 目录 基于java的助农扶贫系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 5.1.1 农户管理 5.1.2 用户管理 5.1.3 订单统计 5.2.1 商品信息管理 5.3.1 商品信息 5.3.2 订单信息 5.3.3 商品评价 5.3.4 商品退货 四、数据库设计 1、…

Hive数仓操作(二)

Hive 数据类型与连接 Hive 是一个用于处理大规模数据集的工具&#xff0c;支持多种数据类型以满足不同的需求。本文将详细介绍 Hive 的基本数据类型和集合数据类型。 一、Hive 基本数据类型 Hive 提供了多种基本数据类型&#xff0c;适用于不同的数据存储和处理需求&#xf…