查看来自IP摄像机的图像

时间:2019-04-30 15:14:24

标签: cv2

我正在通过翻译写作

我有一个密码

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'

如何添加检查图像是否已收到?

或者类似的方法以避免错误

提前谢谢

1 个答案:

答案 0 :(得分:0)

该错误消息尽管是神秘的,但告诉您fNone。检查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',那么这将成为问题的原因。 protocolIPport都是您需要提供的零件的占位符。 (并且根据摄像机的不同,您可能需要提供一个帐户名和密码。完整的URL类似于

'rtsp://admin:password@192.168.1.10:554/11'