当前位置: 首页 > news >正文

OpenCV视频I/O(2)视频采集类VideoCapture之检索视频流的各种属性函数get()的使用

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

算法描述

返回指定的 VideoCapture 属性。
VideoCapture 的 get() 函数用于检索视频流的各种属性。这个函数允许你查询视频源的状态和配置,例如分辨率、帧率等。

函数原型


virtual double cv::VideoCapture::get
(int 	propId
)const

参数

  • 参数propId 来自 cv::VideoCaptureProperties 的属性标识符(例如,cv::CAP_PROP_POS_MSEC,cv::CAP_PROP_POS_FRAMES,…)或针对视频 I/O API 后端的附加标志。

示例:

  • cv::CAP_PROP_POS_MSEC:当前视频位置(以毫秒计)。
  • cv::CAP_PROP_POS_FRAMES:当前帧的位置(以帧计)。
  • cv::CAP_PROP_POS_AVI_RATIO:当前帧位置相对于视频长度的比例(0.0 到 1.0)。
  • cv::CAP_PROP_FRAME_WIDTH:视频帧的宽度(像素)。
  • cv::CAP_PROP_FRAME_HEIGHT:视频帧的高度(像素)。
  • cv::CAP_PROP_FPS:视频流的帧率(每秒帧数)。
  • cv::CAP_PROP_FOURCC:视频编解码器的四字符代码。
  • cv::CAP_PROP_FRAME_COUNT:视频流的总帧数。
  • cv::CAP_PROP_FORMAT:当前像素格式。
  • cv::CAP_PROP_MODE:当前输入模式。
  • cv::CAP_PROP_BRIGHTNESS:图像亮度(仅限某些设备)。
  • cv::CAP_PROP_CONTRAST:图像对比度(仅限某些设备)。
  • cv::CAP_PROP_SATURATION:图像饱和度(仅限某些设备)。
  • cv::CAP_PROP_HUE:图像色调(仅限某些设备)。
  • cv::CAP_PROP_GAIN:图像增益(仅限某些设备)。
  • cv::CAP_PROP_EXPOSURE:曝光(仅限某些设备)。
  • cv::CAP_PROP_CONVERT_RGB:是否应该自动将图像转换为 RGB。
  • cv::CAP_PROP_WHITE_BALANCE:白平衡(仅限某些设备)。
  • cv::CAP_PROP_RECTIFICATION:立体摄像机的校正标志。
  • cv::CAP_PROP_MONOCHROME:是否为黑白摄像机。
  • cv::CAP_PROP_SHARPNESS:图像锐度(仅限某些设备)。
  • cv::CAP_PROP_AUTO_EXPOSURE:自动曝光(仅限某些设备)。
  • cv::CAP_PROP_GAMMA:伽玛(仅限某些设备)。
  • cv::CAP_PROP_TEMPERATURE:色温(仅限某些设备)。
  • cv::CAP_PROP_TRIGGER:触发器模式(仅限某些设备)。
  • cv::CAP_PROP_TRIGGER_DELAY:触发延迟(仅限某些设备)。
  • cv::CAP_PROP_WHITE_BALANCE_BLUE_U:蓝平衡 U(仅限某些设备)。
  • cv::CAP_PROP_WHITE_BALANCE_RED_V:红平衡 V(仅限某些设备)。
  • cv::CAP_PROP_ZOOM:变焦(仅限某些设备)。
  • cv::CAP_PROP_FOCUS:聚焦(仅限某些设备)。
  • cv::CAP_PROP_GUID:设备的 GUID(仅限某些设备)。
  • cv::CAP_PROP_ISO_SPEED:ISO 速度(仅限某些设备)。
  • cv::CAP_PROP_BACKLIGHT:背光补偿(仅限某些设备)。

返回值

类型:取决于所请求的属性,可能是 double 或其他数值类型。
描述:返回指定属性的当前值。

注意

读取/写入属性涉及许多层。在这个过程中可能会发生一些意想不到的结果。
VideoCapture -> API 后端 -> 操作系统 -> 设备驱动程序 -> 设备硬件
返回的值可能与设备实际使用的值不同,或者它可能使用设备依赖的规则进行编码(例如,步长或百分比)。实际行为取决于设备驱动程序和 API 后端。

代码示例


#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;}// 获取视频帧的宽度和高度double frameWidth  = cap.get( cv::CAP_PROP_FRAME_WIDTH );double frameHeight = cap.get( cv::CAP_PROP_FRAME_HEIGHT );// 获取帧率double fps = cap.get( cv::CAP_PROP_FPS );// 获取视频流的总帧数int frameCount = cap.get( cv::CAP_PROP_FRAME_COUNT );// 获取当前视频流的位置(毫秒)double positionMs = cap.get( cv::CAP_PROP_POS_MSEC );// 获取当前视频流的位置(帧)long positionFrames = static_cast< long >( cap.get( cv::CAP_PROP_POS_FRAMES ) );// 打印获取的信息std::cout << "Frame Width: " << frameWidth << std::endl;std::cout << "Frame Height: " << frameHeight << std::endl;std::cout << "FPS: " << fps << std::endl;std::cout << "Frame Count: " << frameCount << std::endl;std::cout << "Position (ms): " << positionMs << std::endl;std::cout << "Position (frames): " << positionFrames << std::endl;// 释放资源cap.release();return 0;
}

运行结果

Frame Width: 640
Frame Height: 480
FPS: 30
Frame Count: -1
Position (ms): 0
Position (frames): -1
http://www.lryc.cn/news/448182.html

相关文章:

  • 基于SpringBoot的学生宿舍管理系统【附源码】
  • 【开源免费】基于SpringBoot+Vue.JS新闻推荐系统(JAVA毕业设计)
  • 【每天学个新注解】Day 8 Lombok注解简解(七)—@Getter(lazy=true)
  • 打造备份一体机,群晖科技平台化战略再进阶
  • Sharding-JDBC笔记03-分库分表代码示例
  • 气膜健身馆:提升运动体验与健康的理想选择—轻空间
  • 选择更轻松:山海鲸可视化与PowerBI的深度对比
  • Python Daphne库:ASGI服务的高效Web服务器
  • 如何保护自己电脑以及服务器的ip地址
  • 我的创作纪念日---256days
  • 前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
  • 计算机性能指标之MFLOPS
  • Sharp.js:简单而又实用的图像处理库
  • Rust环境安装配置
  • 衡石分析平台系统管理手册-功能配置之全局 JS 设置
  • OpenHarmony(鸿蒙南向)——平台驱动开发【MIPI DSI】
  • C++_一篇文章让你弄懂各类(运算符)
  • 顺序表算法题 —— 移除元素、删除有序数组中的重复项、合并两个有序数组
  • 配置ssh后又报错git@github.com: Permission denied (publickey)
  • yolov10安装体验
  • 使用Docker-Compose部署SpringBoot项目的案例
  • 大话 RCU (read copy update)
  • vue项目npm run serve 报错,Error: read ECONNRESET at TCP.onStreamRead
  • 十二、MySQL数据类型精讲
  • 不同参数对分类精度的影响以及思考
  • 开源AI智能名片小程序源码:私域电商构建独特竞争力的新机遇
  • 从Web2到Web3:探索下一代互联网的无限可能性
  • POE供电支持画中画的摄像头解决方案
  • Python 3 字典
  • CFR( Java 反编译器)