为了账号安全,请及时绑定邮箱和手机立即绑定

在OpenCV / Python中设置相机参数

在OpenCV / Python中设置相机参数

森林海 2019-10-25 10:38:16
我正在使用来自Thorlabs(DC1545M)的USB摄像机的OpenCV(2.4)和Python(2.7.3)。我正在对视频流进行一些图像分析,我希望能够从我的视频流中更改某些相机参数。令人困惑的是,我可以更改某些相机属性,但不能更改所有属性,而且我不确定自己做错了什么。这是在Python中使用cv2绑定的代码,我可以确认它可以运行:import cv2#capture from camera at location 0cap = cv2.VideoCapture(0)#set the width and height, and UNSUCCESSFULLY set the exposure timecap.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:        breakcv2.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 file3. 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的解决方案。提前致谢!
查看完整描述

3 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

我在Raspberry Pi上使用openCV遇到了同样的问题...不知道这是否可以解决您的问题,但是对我有用的是


import time

import cv2



cap = cv2.VideoCapture(0)


cap.set(3,1280)


cap.set(4,1024)


time.sleep(2)


cap.set(15, -8.0)

您必须使用的时间可能会有所不同


查看完整回答
反对 回复 2019-10-25
  • 3 回答
  • 0 关注
  • 1609 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信