有没有办法用Python和OpenCV来调整摄像头的快门速度或曝光时间

2024-09-21 03:23:15 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的机器人视觉项目中,我需要检测运动物体的标记,但运动会导致图像中的模糊效果。反褶积方法相当缓慢。所以我想用更高的fps相机。有人说我不需要更高的fps,而是需要更短的曝光时间。

OpenCV的Python接口cv2提供了一种更改相机设置的方法,但它不包括“曝光时间”或“快门速度”设置。我也担心网络摄像头甚至不支持这种设置。

任何其他关于:

使用相机设置消除模糊效果?

或者

具有实时性的图像恢复?

或者

有什么关于实时机器人应用的低成本摄像机的建议吗?


Tags: 项目方法标记图像时间机器人视觉cv2
1条回答
网友
1楼 · 发布于 2024-09-21 03:23:15

OpenCV中有一种改变VideoCapture对象属性的方法,可以用来设置输入图像的曝光。

cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_EXPOSURE, 40) 

但是,并非所有相机都支持此参数。每种相机类型都提供不同的接口来设置其参数。OpenCV代码中有许多分支可以支持其中的许多分支,但当然并没有涵盖所有的可能性。

我的相机也是这样。所以我必须找到一个不同的解决方案。这是从命令行终端使用v4l2_ctl实用程序。

v4l2-ctl -d /dev/video0 -c exposure_absolute=40

但这只保留了当前视频会话的价值。这意味着您必须先启动视频预览,然后在释放VideoCapture后立即设置此属性,曝光值将恢复为默认值。

我想在python脚本中控制曝光,所以使用subprocess模块运行linux bash命令。e、 g

import subprocess
subprocess.check_call("v4l2-ctl -d /dev/video0 -c exposure_absolute=40",shell=True)

相关问题 更多 >

    热门问题