使用Opencv编辑相机设置

6

有没有办法通过使用OpenCV Python来设置相机设置(ISO,焦距等)?我们正在机器人上使用计算机视觉,但每次角度或光线变化时,相机都会重新配置自己,因此无法使用SciKit Learn中的SVM。有没有办法停止它?

1个回答

10

是的,有一种方法可以使用OpenCV手动控制USB网络摄像头。我正在使用的网络摄像头是罗技C525,但我认为以下代码适用于所有罗技网络摄像头。

import cv2

cam = cv2.VideoCapture(0)

#       key value
cam.set(3 , 640  ) # width        
cam.set(4 , 480  ) # height       
cam.set(10, 120  ) # brightness     min: 0   , max: 255 , increment:1  
cam.set(11, 50   ) # contrast       min: 0   , max: 255 , increment:1     
cam.set(12, 70   ) # saturation     min: 0   , max: 255 , increment:1
cam.set(13, 13   ) # hue         
cam.set(14, 50   ) # gain           min: 0   , max: 127 , increment:1
cam.set(15, -3   ) # exposure       min: -7  , max: -1  , increment:1
cam.set(17, 5000 ) # white_balance  min: 4000, max: 7000, increment:1
cam.set(28, 0    ) # focus          min: 0   , max: 255 , increment:5

请注意,焦点值仅以5的倍数出现(0、5、10、15... 255)。您提到的ISO应该更与“曝光”和“增益”有关,这会影响信号强度。
祝好运!

嗨!我使用计时器,并输出了500次迭代开始时间和结束时间之间的时间差。问题在于曝光设置似乎无法加快或减慢处理速度。这有点无用。需要帮助吗?我正在使用picameraV2。 - Cătălina Sîrbu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接