OpenCV在帧捕获中设置了错误的相机分辨率

时间:2018-08-31 09:34:15

标签: opencv frame video-capture

我正在尝试将OpenCV与python结合使用,以从USB摄像机捕获1080p帧。

我确定相机可以在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() 

创建分辨率为640x480的png图像。

此外,执行cv2.VideoCapture(3)后,如果我打开QTv4l2 Test Utils,将摄像机分辨率设置为1080p的可能性就消失了。找回它的唯一方法是拔下电源插头,然后重新插入相机。

关于发生这种情况的任何线索以及有关如何解决问题的建议?

0 个答案:

没有答案