Muh*_*lah 8 python robotics opencv real-time computer-vision
在我的机器人视觉项目中,我需要检测运动物体的标记,但运动会导致图像模糊.反卷积方法非常慢.所以我想用更高的fps相机.有人说我不需要更高的fps,而是需要更短的曝光时间.
OpenCV的Python界面cv2提供了一种更改摄像机设置的方法,但它不包括"曝光时间"或"快门速度"设置.我也担心网络摄像头甚至不支持这种设置.
关于的任何其他想法:
使用相机设置消除模糊效果?
要么
具有实时性能的图像恢复?
要么
关于实时机器人应用的低成本相机的任何建议?
Muh*_*lah 11
有一种方法可用于在OpenCV中更改VideoCapture对象的属性,可用于设置输入图像的曝光.
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_EXPOSURE, 40)
Run Code Online (Sandbox Code Playgroud)
但是,并非所有摄像机都支持此参数.每种摄像机类型都提供不同的界面来设置其参数.OpenCV代码中有许多分支支持尽可能多的分支,但当然不是所有的可能性都包括在内.
我的相机也是如此.所以我必须找到一个不同的解决方案.那就是VideoCapture从命令行终端使用实用程序.
v4l2-ctl -d /dev/video0 -c exposure_absolute=40
Run Code Online (Sandbox Code Playgroud)
但这只保留了当前视频会话的价值.这意味着您必须首先开始视频预览,然后设置此属性一旦释放视频捕捉,曝光值将恢复为默认值.
我想在我的python脚本中控制曝光,所以我用v4l2_ctlmodule来运行linux bash命令.例如
import subprocess
subprocess.check_call("v4l2-ctl -d /dev/video0 -c exposure_absolute=40",shell=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7154 次 |
| 最近记录: |