ZED使用指南(五)Camera Controls
七、其他
1、相机控制
(1)选择视频模式
左右视频帧同步,以并排格式作为单个未压缩视频帧流式传输。
在ZED Explorer或者使用API可以改变视频的分辨率和帧率。
(2)选择输出视图
ZED能以不同的格式输出图像,包括校正、未校正和灰度图像(左视图、右视图、并排视图、左未校正或右未校正、左灰度或右灰度)。
(3)调整相机设置
ZED相机具有板载ISP(图像信号处理器),可以对双图像传感器捕获的原始图像执行各种图像处理算法。ISP的参数可以通过ZED Explorer或者ZED SDK进行调整。
相机调整参数左右是同步的,不能单独调整。
当相机的白平衡、曝光和增益处于“自动”模式时,它们会根据场景中的亮度自动调整。
注意:在低光环境中增加Gamma设置。
使用API
(1)相机配置
创建一个camera对象并指定InitParameters。
初始参数可以调整分辨率、FPS、深度感知参数等等。这些参数只能在打开相机前设置,不能在相机的使用过程中更改。
# Create a ZED camera object
zed = sl.Camera()# Set configuration parameters
init_params = sl.InitParameters()
init_params.camera_resolution = sl.RESOLUTION.HD1080
init_params.camera_fps = 30# Open the camera
err = zed.open(init_params)
if err != sl.ERROR_CODE.SUCCESS:exit(-1)
InitParameters包含默认配置。
(2)捕获图像
指定RuntimeParameters,调用grab()捕获新帧,调用retrieveImage()检索捕获的帧。
retrieveImage()可以在不同的视图之间进行选择,如左、右、未校正和灰度图像。
image = sl.Mat()
if zed.grab() == SUCCESS:# A new image is available if grab() returns SUCCESSzed.retrieve_image(image, sl.VIEW.LEFT) # Retrieve the left image
(3)调整相机控制
曝光、白平衡等相机设置可以在运行时使用setcamersettings()手动设置。
要改变相机分辨率和帧率,使用InitParameters()。
# Set exposure to 50% of camera framerate
zed.set_camera_settings(sl.VIDEO_SETTINGS.EXPOSURE, 50)
# Set white balance to 4600K
zed.set_camera_settings(sl.VIDEO_SETTINGS.WHITE_BALANCE, 4600)
# Reset to auto exposure
zed.set_camera_settings(sl.VIDEO_SETTINGS.EXPOSURE, -1)
完整程序
"""Live camera sample showing the camera information and video in real time and allows to control the differentsettings.
"""import cv2
import pyzed.sl as slcamera_settings = sl.VIDEO_SETTINGS.BRIGHTNESS
str_camera_settings = "BRIGHTNESS"
step_camera_settings = 1def main():print("Running...")init = sl.InitParameters()cam = sl.Camera()if not cam.is_opened():print("Opening ZED Camera...")status = cam.open(init)if status != sl.ERROR_CODE.SUCCESS:print(repr(status))exit()runtime = sl.RuntimeParameters()mat = sl.Mat()print_camera_information(cam)print_help()key = ''while key != 113: # for 'q' keyerr = cam.grab(runtime)if err == sl.ERROR_CODE.SUCCESS:cam.retrieve_image(mat, sl.VIEW.LEFT)cv2.imshow("ZED", mat.get_data())key = cv2.waitKey(5)settings(key, cam, runtime, mat)else:key = cv2.waitKey(5)cv2.destroyAllWindows()cam.close()print("\nFINISH")def print_camera_information(cam):print("Resolution: {0}, {1}.".format(round(cam.get_camera_information().camera_configuration.resolution.width, 2), cam.get_camera_information().camera_configuration.resolution.height))print("Camera FPS: {0}.".format(cam.get_camera_information().camera_configuration.fps))print("Firmware: {0}.".format(cam.get_camera_information().camera_configuration.firmware_version))print("Serial number: {0}.\n".format(cam.get_camera_information().serial_number))def print_help():print("Help for camera setting controls")print(" Increase camera settings value: +")print(" Decrease camera settings value: -")print(" Switch camera settings: s")print(" Reset all parameters: r")print(" Record a video: z")print(" Quit: q\n")def settings(key, cam, runtime, mat):if key == 115: # for 's' keyswitch_camera_settings()elif key == 43: # for '+' keycurrent_value = cam.get_camera_settings(camera_settings)[1]cam.set_camera_settings(camera_settings, current_value + step_camera_settings)print(str_camera_settings + ": " + str(current_value + step_camera_settings))elif key == 45: # for '-' keycurrent_value = cam.get_camera_settings(camera_settings)[1]if current_value >= 1:cam.set_camera_settings(camera_settings, current_value - step_camera_settings)print(str_camera_settings + ": " + str(current_value - step_camera_settings))elif key == 114: # for 'r' keycam.set_camera_settings(sl.VIDEO_SETTINGS.BRIGHTNESS, -1)cam.set_camera_settings(sl.VIDEO_SETTINGS.CONTRAST, -1)cam.set_camera_settings(sl.VIDEO_SETTINGS.HUE, -1)cam.set_camera_settings(sl.VIDEO_SETTINGS.SATURATION, -1)cam.set_camera_settings(sl.VIDEO_SETTINGS.SHARPNESS, -1)cam.set_camera_settings(sl.VIDEO_SETTINGS.GAIN, -1)cam.set_camera_settings(sl.VIDEO_SETTINGS.EXPOSURE, -1)cam.set_camera_settings(sl.VIDEO_SETTINGS.WHITEBALANCE_TEMPERATURE, -1)print("Camera settings: reset")elif key == 122: # for 'z' keyrecord(cam, runtime, mat)def switch_camera_settings():global camera_settingsglobal str_camera_settingsif camera_settings == sl.VIDEO_SETTINGS.BRIGHTNESS:camera_settings = sl.VIDEO_SETTINGS.CONTRASTstr_camera_settings = "Contrast"print("Camera settings: CONTRAST")elif camera_settings == sl.VIDEO_SETTINGS.CONTRAST:camera_settings = sl.VIDEO_SETTINGS.HUEstr_camera_settings = "Hue"print("Camera settings: HUE")elif camera_settings == sl.VIDEO_SETTINGS.HUE:camera_settings = sl.VIDEO_SETTINGS.SATURATIONstr_camera_settings = "Saturation"print("Camera settings: SATURATION")elif camera_settings == sl.VIDEO_SETTINGS.SATURATION:camera_settings = sl.VIDEO_SETTINGS.SHARPNESSstr_camera_settings = "Sharpness"print("Camera settings: Sharpness")elif camera_settings == sl.VIDEO_SETTINGS.SHARPNESS:camera_settings = sl.VIDEO_SETTINGS.GAINstr_camera_settings = "Gain"print("Camera settings: GAIN")elif camera_settings == sl.VIDEO_SETTINGS.GAIN:camera_settings = sl.VIDEO_SETTINGS.EXPOSUREstr_camera_settings = "Exposure"print("Camera settings: EXPOSURE")elif camera_settings == sl.VIDEO_SETTINGS.EXPOSURE:camera_settings = sl.VIDEO_SETTINGS.WHITEBALANCE_TEMPERATUREstr_camera_settings = "White Balance"print("Camera settings: WHITEBALANCE")elif camera_settings == sl.VIDEO_SETTINGS.WHITEBALANCE_TEMPERATURE:camera_settings = sl.VIDEO_SETTINGS.BRIGHTNESSstr_camera_settings = "Brightness"print("Camera settings: BRIGHTNESS")def record(cam, runtime, mat):vid = sl.ERROR_CODE.FAILUREout = Falsewhile vid != sl.ERROR_CODE.SUCCESS and not out:filepath = input("Enter filepath name: ")record_param = sl.RecordingParameters(filepath)vid = cam.enable_recording(record_param)print(repr(vid))if vid == sl.ERROR_CODE.SUCCESS:print("Recording started...")out = Trueprint("Hit spacebar to stop recording: ")key = Falsewhile key != 32: # for spacebarerr = cam.grab(runtime)if err == sl.ERROR_CODE.SUCCESS:cam.retrieve_image(mat)cv2.imshow("ZED", mat.get_data())key = cv2.waitKey(5)else:print("Help: you must enter the filepath + filename + SVO extension.")print("Recording not started.")cam.disable_recording()print("Recording finished.")cv2.destroyAllWindows()if __name__ == "__main__":main()
相关文章:

ZED使用指南(五)Camera Controls
七、其他 1、相机控制 (1)选择视频模式 左右视频帧同步,以并排格式作为单个未压缩视频帧流式传输。 在ZED Explorer或者使用API可以改变视频的分辨率和帧率。 (2)选择输出视图 ZED能以不同的格式输出图像…...
wrk泛洪攻击监控脚本
wrk泛洪攻击介绍 WRK泛洪攻击(WRK Flood Attack)是一种基于WRK工具进行的DDoS攻击(分布式拒绝服务攻击)。WRK是一个高度并行的HTTP负载生成器,可以模拟大量用户访问一个网站,从而导致该网站服务器瘫痪或失效…...

软件I2C读写MPU6050代码
1、硬件电路 SCL引到了STM32的PB10号引脚,SDA引到了PB11号引脚软件I2C协议: 用普通GPIO口,手动反转电平实现协议,不需要STM32内部的外设资源支持,故端口是可以任意指定MPU605在SCL和SDA自带了两个上拉电阻,…...

销售/回收DSOS254A是德keysight MSOS254A混合信号示波器
Agilent DSOS254A、Keysight MSOS254A、 混合信号示波器,2.5 GHz,20 GSa/s,4 通道,16 数字通道。 Infiniium S 系列示波器 信号保真度方面树立新标杆 500 MHz 至 8 GHz 出色的信号完整性使您可以看到真实显示的信号࿱…...

RIDGID里奇金属管线检测仪故障定位仪维修SR-20KIT
里奇RIDGID管线定位仪/检测仪/探测仪维修SR-20 SR-24 SR-60 美国里奇SeekTech SR-20管线定位仪对于初次使用定位仪的用户或经验丰富的用户,都同样可以轻易上手使用SR-20。SR-20提供许多设置和参数,使得大多数复杂的定位工作变得很容易。此外,…...

NodeJs之调试
关于调试 当我们只专注于前端的时候,我们习惯性F12,这会给我们带来安全与舒心的感觉。 但是当我们使用NodeJs来开发后台的时候,我想噩梦来了。 但是也别泰国担心,NodeJs的调试是很不方便!这是肯定的。 但是还好&…...

Java面试知识点(全)- Java并发-多线程JUC二-原子类/锁
Java面试知识点(全) 导航: https://nanxiang.blog.csdn.net/article/details/130640392 注:随时更新 JUC原子类 什么是CAS CAS的全称为Compare-And-Swap,直译就是对比交换。是一条CPU的原子指令,其作用是让CPU先进行比较两个值…...

CSS--移动web基础
01-移动 Web 基础 谷歌模拟器 模拟移动设备,方便查看页面效果 屏幕分辨率 分类: 物理分辨率:硬件分辨率(出厂设置)逻辑分辨率:软件 / 驱动设置 结论:制作网页参考 逻辑分辨率 视口 作用&a…...

Appuploader 常见错误及解决方法
转载:Appuploader 常见错误及解决方法 问题解决秘籍 遇到问题,第一个请登录苹果开发者官网 检查一遍账号是否有权限,是否被停用,是否过期,是否有协议需要同意,并且在右上角切换账号后检查所有关联的账号是否…...

消息通知之系统层事件发布相关流程
前言 Openharmony 3.1Release中存在消息通知的处理,消息通知包括系统层事件发布、消息订阅、消息投递与处理,为了开发者能够熟悉消息的处理流程,本篇文章主要介绍系统层事件发布的相关流程。 整体流程 代码流程 发布消息 { eventAction)w…...

Elsevier Ocean Engineering Guide for Authors 解读
文章目录 ★Types of contributions★Submission checklistEthics in publishing★Declaration of competing interestDeclaration of generative AI in scientific writingSubmission declaration and verificationPreprint posting on SSRNUse of inclusive languageReportin…...

基于Fragstats的土地利用景观格局分析
土地利用以及景观格局是当前全球环境变化研究的重要组成部分及核心内容,其对区域的可持续发展以及区域土地管理有非常重要的意义。通过对土地利用时空变化规律进行分析可以更好的了解土地利用变化的过程和机制,并且通过调整人类社会经济活动,…...
ffmpeg-转码脚本02
ffmpeg-转码脚本详解 高级脚本 以下为主要部分 更高级优化要见git上 mkv转码电影脚本 ECHO OFF REM 以下参数不可乱填 SET FFMPEG%~DP0\ffmpeg.exe ::------------------------------------------------------------------------------ CALL:PRO_LOOPDIR ::CALL:PRO_LOOPDIR_SU…...
SharedPreferences
Android轻量级数据存储 import android.content.Context; import android.content.SharedPreferences;public class SharedPreferencesUtil {private SharedPreferences sharedPreferences;private SharedPreferences.Editor editor;public SharedPreferencesUtil(Context con…...

服务(第二十五篇)redis的优化和持久化
持久化的功能:Redis是内存数据库,数据都是存储在内存中,为了避免服务器断电等原因导致Redis进程异常退出后数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;当下…...

David Silver Lecture 7: Policy Gradient
1 Introduction 1.1 Policy-Based Reinforcement Learning 1.2 Value-based and policy based RL 基于值的强化学习 在基于值的 RL 中,目标是找到一个最优的值函数,通常是 Q 函数或 V 函数。这些函数为给定的状态或状态-动作对分配一个值,表…...

知识图谱学习笔记——(五)知识图谱推理
一、知识学习 声明:知识学习中本文主体按照浙江大学陈华钧教授的《知识图谱》公开课讲义进行介绍,并个别地方加入了自己的注释和思考,希望大家尊重陈华钧教授的知识产权,在使用时加上出处。感谢陈华钧教授。 (一&…...
用vs2010编译和调试多个arx版本的arx项目
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、一级标题二级标题三级标题四级标题五级标题六级标题升级原先vs2008版本的项目文件到2010,或直接用vs2010新建一个arx项目; vs中查看项目属性:Project menu -> Properties,项目名上右…...
安全相关词汇
• DEW: Data Encryption Workshop • HSM: Hardware Security Module • KMS: Key Management System • KAM: Key Account Management • DHSM: Dedicated Hardware Security Module • KPS: Key Pair Service • CSMS: Cloud Secret Management Service • PCI-DSS: …...

最新入河排污口设置论证、水质影响预测与模拟、污水处理工艺分析及典型建设项目入河排污口方案报告书
随着水资源开发利用量不断增大,全国废污水排放量与日俱增,部分河段已远远超出水域纳污能力。近年来,部分沿岸入河排污口设置不合理,超标排污、未经同意私设排污口等问题逐步显现,已威胁到供水安全、水环境安全和水生态安全&#x…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...