我正在通过翻译写作
我有一个密码
import cv2
stream = cv2.VideoCapture('protocol://IP:port/1')
while True:
r, f = stream.read()
cv2.imshow('IP Camera stream',f)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
如果我无法从相机中获取视频流,但出现错误
Traceback (most recent call last):
File "C:\Users\User\Desktop\Proge\good2.py", line 10, in <module>
cv2.imshow('IP Camera stream',f)
cv2.error: OpenCV(4.1.0) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:352: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'
如何添加检查图像是否已收到?
或者类似的方法以避免错误
提前谢谢
答案 0 :(得分:0)
该错误消息尽管是神秘的,但告诉您f
是None
。检查r
(文档中的“ retVal”)以验证read()
成功是明智的。将循环内的代码更改为类似
r, f = stream.read()
if r:
cv2.imshow('IP Camera Stream, f)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
现在,如果您的代码实际上正在使用'protocol://IP:port/1'
,那么这将成为问题的原因。 protocol
,IP
和port
都是您需要提供的零件的占位符。 (并且根据摄像机的不同,您可能需要提供一个帐户名和密码。完整的URL类似于
'rtsp://admin:password@192.168.1.10:554/11'