Używam OpenCV (2.4) i Python (2.7.3) z kamerą USB od Thorlabs (DC1545M).Ustawianie parametrów kamery w OpenCV/Python
Robię trochę analizy obrazu w strumieniu wideo i chciałbym móc zmienić niektóre parametry kamery z mojego strumienia wideo. Mylące jest to, że jestem w stanie zmienić niektóre właściwości kamery, ale nie wszystkie, i nie jestem pewien, co robię źle.
Oto kod, za pomocą wiązania CV2 Pythona, można potwierdzić, że działa:
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()
Dla porównania, pierwszy argument w cap.set() polecenie odnosi się do wyliczenie właściwości kamery, wymienione poniżej:
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.
3. CV_CAP_PROP_POS_AVI_RATIO Relative position of the video file
4. CV_CAP_PROP_FRAME_WIDTH Width of the frames in the video stream.
5. CV_CAP_PROP_FRAME_HEIGHT Height of the frames in the video stream.
6. CV_CAP_PROP_FPS Frame rate.
7. CV_CAP_PROP_FOURCC 4-character code of codec.
8. CV_CAP_PROP_FRAME_COUNT Number of frames in the video file.
9. CV_CAP_PROP_FORMAT Format of the Mat objects returned by retrieve() .
10. CV_CAP_PROP_MODE Backend-specific value indicating the current capture mode.
11. CV_CAP_PROP_BRIGHTNESS Brightness of the image (only for cameras).
12. CV_CAP_PROP_CONTRAST Contrast of the image (only for cameras).
13. CV_CAP_PROP_SATURATION Saturation of the image (only for cameras).
14. CV_CAP_PROP_HUE Hue of the image (only for cameras).
15. CV_CAP_PROP_GAIN Gain of the image (only for cameras).
16. CV_CAP_PROP_EXPOSURE Exposure (only for cameras).
17. CV_CAP_PROP_CONVERT_RGB Boolean flags indicating whether images should be converted to RGB.
18. CV_CAP_PROP_WHITE_BALANCE Currently unsupported
19. CV_CAP_PROP_RECTIFICATION Rectification flag for stereo cameras (note: only supported by DC1394 v 2.x backend currently)
moje pytania są następujące:
Czy można ustawić czas ekspozycji kamery (lub inne parametry kamery) za pomocą pythona/opencv?
Jeśli nie, w jaki sposób mogę ustawić te parametry?
Uwaga: Istnieje kod C++ dostarczony przez producenta aparatu pokazujący, jak to zrobić, ale nie jestem ekspertem (przez długie ujęcie) w C++ i byłby wdzięczny za każde rozwiązanie oparte na pythonie.
Z góry dziękuję!
Więc jaka jest 15 opcja, np. CV_CAP_PROP_EXPOSURE? Czy to nie czas ekspozycji? –
To jest. Chodziło mi o to, że próba modyfikacji powoduje uzyskanie jakiegokolwiek mierzalnego wyniku. (to jest 'cap.set (15, x)', gdzie żadna wartość 'x' nie daje wymiernej zmiany.) Przy okazji, dziękuję za twój blog. Bardzo mi się to przydaje, gdy zaczynam działać z opencv przez pythona. Otrzymujesz awans do tego :) – Mike
ostatnia linia: cv2.VideoCapture (0) .release() może po prostu być cap.release() :) – otterb