2024-09-21 03:23:15 发布
网友
在我的机器人视觉项目中,我需要检测运动物体的标记,但运动会导致图像中的模糊效果。反褶积方法相当缓慢。所以我想用更高的fps相机。有人说我不需要更高的fps,而是需要更短的曝光时间。
OpenCV的Python接口cv2提供了一种更改相机设置的方法,但它不包括“曝光时间”或“快门速度”设置。我也担心网络摄像头甚至不支持这种设置。
cv2
任何其他关于:
使用相机设置消除模糊效果?
或者
具有实时性的图像恢复?
有什么关于实时机器人应用的低成本摄像机的建议吗?
OpenCV中有一种改变VideoCapture对象属性的方法,可以用来设置输入图像的曝光。
VideoCapture
cap = cv2.VideoCapture(0) cap.set(cv2.CAP_PROP_EXPOSURE, 40)
但是,并非所有相机都支持此参数。每种相机类型都提供不同的接口来设置其参数。OpenCV代码中有许多分支可以支持其中的许多分支,但当然并没有涵盖所有的可能性。
我的相机也是这样。所以我必须找到一个不同的解决方案。这是从命令行终端使用v4l2_ctl实用程序。
v4l2_ctl
v4l2-ctl -d /dev/video0 -c exposure_absolute=40
但这只保留了当前视频会话的价值。这意味着您必须先启动视频预览,然后在释放VideoCapture后立即设置此属性,曝光值将恢复为默认值。
我想在python脚本中控制曝光,所以使用subprocess模块运行linux bash命令。e、 g
subprocess
import subprocess subprocess.check_call("v4l2-ctl -d /dev/video0 -c exposure_absolute=40",shell=True)
OpenCV中有一种改变
VideoCapture
对象属性的方法,可以用来设置输入图像的曝光。但是,并非所有相机都支持此参数。每种相机类型都提供不同的接口来设置其参数。OpenCV代码中有许多分支可以支持其中的许多分支,但当然并没有涵盖所有的可能性。
我的相机也是这样。所以我必须找到一个不同的解决方案。这是从命令行终端使用
v4l2_ctl
实用程序。但这只保留了当前视频会话的价值。这意味着您必须先启动视频预览,然后在释放
VideoCapture
后立即设置此属性,曝光值将恢复为默认值。我想在python脚本中控制曝光,所以使用
subprocess
模块运行linux bash命令。e、 g相关问题 更多 >
编程相关推荐