猿问

在OpenCV / Python中设置相机参数

我正在使用来自Thorlabs(DC1545M)的USB摄像机的OpenCV(2.4)和Python(2.7.3)。


我正在对视频流进行一些图像分析,我希望能够从我的视频流中更改某些相机参数。令人困惑的是,我可以更改某些相机属性,但不能更改所有属性,而且我不确定自己做错了什么。


这是在Python中使用cv2绑定的代码,我可以确认它可以运行:


import cv2



#capture from camera at location 0

cap = cv2.VideoCapture(0)

#set the width and height, and UNSUCCESSFULLY set the exposure time

cap.set(3,1280)

cap.set(4,1024)

cap.set(15, 0.1)


while True:

    ret, img = cap.read()

    cv2.imshow("input", img)

    #cv2.imshow("thresholded", imgray*thresh2)


    key = cv2.waitKey(10)

    if key == 27:

        break



cv2.destroyAllWindows() 

cv2.VideoCapture(0).release()

作为参考,cap.set()命令中的第一个参数引用相机属性的枚举,如下所示:


0. CV_CAP_PROP_POS_MSEC Current position of the video file in milliseconds.

1. CV_CAP_PROP_POS_FRAMES 0-based index of the frame to be decoded/captured next.

2. CV_CAP_PROP_POS_AVI_RATIO Relative position of the video file

3. CV_CAP_PROP_FRAME_WIDTH Width of the frames in the video stream.

4. CV_CAP_PROP_FRAME_HEIGHT Height of the frames in the video stream.

5. CV_CAP_PROP_FPS Frame rate.

6. CV_CAP_PROP_FOURCC 4-character code of codec.

7. CV_CAP_PROP_FRAME_COUNT Number of frames in the video file.

8. CV_CAP_PROP_FORMAT Format of the Mat objects returned by retrieve() .

9. CV_CAP_PROP_MODE Backend-specific value indicating the current capture mode.

10. CV_CAP_PROP_BRIGHTNESS Brightness of the image (only for cameras).

11. CV_CAP_PROP_CONTRAST Contrast of the image (only for cameras).

12. CV_CAP_PROP_SATURATION Saturation of the image (only for cameras).

13. CV_CAP_PROP_HUE Hue of the image (only for cameras).

14. CV_CAP_PROP_GAIN Gain of the image (only for cameras).

15. CV_CAP_PROP_EXPOSURE Exposure (only for cameras).

16. CV_CAP_PROP_CONVERT_RGB Boolean flags indicating whether images should be converted to RGB.

17. CV_CAP_PROP_WHITE_BALANCE Currently unsupported

我的问题是:


是否可以通过python / opencv设置相机曝光时间(或其他相机参数)?


如果没有,我将如何设置这些参数?


注意:相机制造商提供了C ++代码来显示如何执行此操作,但是我不是C ++的专家(长期来看),并且希望使用任何基于python的解决方案。


提前致谢!


森林海
浏览 1610回答 3
3回答

慕尼黑的夜晚无繁华

我在Raspberry Pi上使用openCV遇到了同样的问题...不知道这是否可以解决您的问题,但是对我有用的是import timeimport cv2cap = cv2.VideoCapture(0)cap.set(3,1280)cap.set(4,1024)time.sleep(2)cap.set(15, -8.0)您必须使用的时间可能会有所不同
随时随地看视频慕课网APP

相关分类

Python
我要回答