我试着用cv2.VideoCapture和16:9比例的相机捕捉照片和视频。但是所有的图像都是由OpenCV返回的,带有黑边,裁剪图像。在我的示例中,它不是返回1280 x 720的图像,而是返回960 x 720的图像。使用网络摄像头C920(1920x1080)时也会发生同样的情况。在
我做错什么了?在
import cv2
video = cv2.VideoCapture(0)
video.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
video.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)
while True:
conected, frame = video.read()
cv2.imshow("Video", frame)
if cv2.waitKey(1) == ord('s'):
video.release()
break
cv2.destroyAllWindows()
使用OpenCV:
使用Windows摄像机:
我也有同样的问题,但只在Windows10、OpenCV3.4和Python3.7上。 我在Mac操作系统上没有黑色边栏就可以得到完整的分辨率。在
我使用PyGame来捕捉网络摄像头的输入,并在Windows上获得了1920x1080的完整分辨率。在
@luismesas的回答是完全正确的,并且对我有用。在
但是对于像我这样不熟练的人,你需要保存cv2.VideoCapture返回的捕获。它不是一个可以像cv2.VideoCapture(cv2.CAP-DSHOW)那样设置的参数,而是一个方法。在
已在网络摄像头设备HD PRO网络摄像头C920上确认。在
我在windows摄像机中遇到了一个罗技广角相机的问题,我想知道一个驱动程序的问题。在
所以我用DirectShow驱动程序而不是本机驱动程序解决了这个问题:
如果你有一个以上的相机,把索引加到这个值上
^{pr2}$它将接受所需的分辨率通过应用正确的纵横比没有侧栏。在
相关问题 更多 >
编程相关推荐