I am using OpenCV (2.4) and Python (2.7.3) with a Thorlabs USB camera (DC1545M).
I am doing image analysis in a video stream, and I would like to be able to change some camera settings from my video stream. It is confusing that I can change some properties of the camera, but not all of them, and I'm not sure what I'm doing wrong.
Here is the code using cv2 bindings in Python, and I can confirm that it works:
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()
For reference, the first argument to cap.set () refers to listing the camera properties listed below:
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 18. CV_CAP_PROP_RECTIFICATION Rectification flag for stereo cameras (note: only supported by DC1394 v 2.x backend currently)
My questions:
Is it possible to set the camera exposure time (or other camera parameters) via python / opencv?
If not, how would I decide to set these parameters?
Note. The C ++ code provided by the camera manufacturer shows how to do this, but I am not an expert (long shot) in C ++ and would appreciate any python-based solution.
Thank you in advance!
Mike Jul 10 '12 at 19:45 2012-07-10 19:45
source share