Я пытаюсь использовать 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 пропала. Единственный способ вернуть его - отключить и снова подключить камеру.
Любая подсказка о том, почему это происходит, и любые предложения о том, как решить проблему?