查看来自 IP 摄像机的图像



我正在通过翻译写作

我有一个代码

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:UsersUserDesktopProgegood2.py", line 10, in <module>
    cv2.imshow('IP Camera stream',f)
cv2.error: OpenCV(4.1.0) C:projectsopencv-pythonopencvmoduleshighguisrcwindow.cpp:352: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'

如何添加检查图像是否已接收或为空?

或类似的东西以避免错误

提前谢谢你

错误消息虽然很神秘,但告诉您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',那么这将是问题的原因。 protocolIPport 都是您需要提供的部件的占位符。(根据摄像机的不同,您可能需要提供帐户名和密码。完整的 URL 将如下所示

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

最新更新