OpenCV устанавливает неправильное разрешение камеры при захвате кадра - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь использовать OpenCV с python для захвата кадра 1080p с камеры USB.

Я уверен, что камера работает на 1080p, потому что я протестировал ее, используя QTv4l2 Test Utils, и с помощью этого инструмента я могу снимать кадры с нужным разрешением.

Однако, запустив этот код:

import cv2

cam = cv2.VideoCapture(0)         #0 because I'm reading frames from /dev/video0
cam.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cam.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
retval, frame = cam.read()
if retval != True:
    raise ValueError("Can't read frame")

cv2.imwrite('img2.png', frame)
cv2.imshow("img1", frame)
cv2.waitKey() 

Создает изображение в формате png с разрешением 640x480.

Более того, после выполнения cv2.VideoCapture(3), если я открою QTv4l2 Test Utils, возможность установить разрешение камеры на 1080p пропала. Единственный способ вернуть его - отключить и снова подключить камеру.

Любая подсказка о том, почему это происходит, и любые предложения о том, как решить проблему?

...