window下使用opencv-python程序打开双目摄像头
在使用opencv-python打开双目摄像头时报如下错误:
error: (-215:Assertion failed) size.width>0 && size.height>0 in function ‘cv::imshow‘
这个问题似乎只会出现在部分电脑上,如果条件允许,可以换台电脑来。
但也可以解决这个问题,其实这个问题是因为本身电脑不能在一个进程下打开俩个摄像头,但是如果在打开后对输出图像的分辨率进行设置后,就可以解决这个问题,具体代码如下:
import cv2
cap1 = cv2.VideoCapture(1 + cv2.CAP_DSHOW)#cv2.CAP_DSHOW是作为open调用的一部分传递标志,别忘记加上
cv2.VideoCapture.set(cap1, 3, 1080) # 参数3表示设置的是宽的分辨率
cv2.VideoCapture.set(cap1, 4, 780) # 参数4表示设置的是高的分辨率
cap2 = cv2.VideoCapture(2 + cv2.CAP_DSHOW)
cv2.VideoCapture.set(cap2, 3, 1080)
cv2.VideoCapture.set(cap2, 4, 780)
#设置完就正常打开了
ret1, frame1 = cap1.read()
ret2, frame2 = cap2.read()
while ret1 and ret2:
ret1, frame1 = cap1.read()
ret2, frame2 = cap2.read()
cv2.imshow('frame1', frame1)
cv2.imshow('frame2', frame2)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap1.release()
cap2.release()
cv2.destroyAllWindows()
如果还是有问题,建议更新一下opencv-python的版本。
参考:https://blog.csdn.net/weixin_41703033/article/details/85240251