我正在尝试通过python将See3Cam_CU130网络摄像头的白平衡设置设置为单个值。这是为了防止白平衡在我的分析过程中发生变化并干扰结果。我认为最好的方法是:
为此,我尝试运行:
cam = cv2.VideoCapture(0)
currentWB = cam.get(cv2.CAP_PROP_WHITE_BALANCE_BLUE_U)
cam.set(cv2.CAP_PROP_WHITE_BALANCE_BLUE_U, currentWB)
尽管最后一行返回True
,但是白平衡参数保持自动状态,其值保持不变。如果我改用C920网络摄像头运行此代码,则白平衡将按预期关闭,并且我能够正确获取/设置其值。
这是See3Cam的问题,还是因为OpenCV是更流行的网络摄像头,它对C920的支持才更好?有什么我可以做的以获得所需的行为?
我知道我可以使用
cam.set(cv2.CAP_PROP_SETTINGS, 1)
打开dshow配置对话框,但是出于明显的原因,我宁愿不手动执行此操作。在Windows 10,Python 3.5.2,OpenCV 3.2.0上进行了测试
最佳答案
根据UVC规范,在自动模式下,白平衡手动控制不会更新。因此,当控件处于自动模式时,读取手动值毫无意义。
关于python - See3CAM/OpenCV自动白平衡支持,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43649947/