我在OpenCV 4.0.1中手动设置相机曝光有麻烦。我将Raspberry Pi 3 B +用作具有Raspbian Stretch OS和Python 3.x的计算机。当我使用旧版本的OpenCV 3.x.x时,使用以下代码可以完美地手动设置“曝光”:
“ camera.set(cv2.CAP_PROP_AUTO_EXPOSURE,0.25)”
“ camera.set(cv2.CAP_PROP_EXPOSURE,(float(exposureTime))”
但是现在当我拥有OpenCV 4.0.1时,上面的代码不会更改任何内容,并且相机仍处于自动曝光模式。相机传感器与以前相同,它是ELP制造的Sony IMX322。您对OpenCV 4.0.1中的MANUAL EXPOSURE有任何经验吗?
谢谢您的回答...
答案 0 :(得分:0)
以下对我有用:
import cv2
#capture from camera at location 0
cap = cv2.VideoCapture(0)
# now set the camera exposure to -4 ( means 2^-4 = 1/16 = 80 ms)
cap.set(15, -4)
while True:
ret, img = cap.read()
# print(img.shape)
cv2.imshow("input", img)
key = cv2.waitKey(10)
if key == 27: # Esc
break
cv2.destroyAllWindows()
cap.release()
答案 1 :(得分:0)
谢谢大家对我的帮助。我在set参数中尝试了“ -4”,但它不起作用。
对我来说唯一有用的是:
# Manual / Auto exposure mode
if exposureMode == 1:
command = "v4l2-ctl -d /dev/video0 -c exposure_auto=1 -c exposure_absolute=" + str(exposureTime)
output = subprocess.call(command, shell=True)
else:
command = "v4l2-ctl -d /dev/video0 -c exposure_auto=3"
output = subprocess.call(command, shell=True)
祝你有美好的一天:)