首页 > 解决方案 > Raspberry Pi 4 - Raspbian Opencv Python 网络摄像头问题

问题描述

在 Rasberry Pi 4,我将使用 USB 网络摄像头进行图像处理。为此,我将 OpenCv 库添加到 Python。我用下面的代码做了最简单的视频处理。

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    # Our operations on the frame come here
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # Display the resulting frame
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

但是,在制作过程后会出现这样的错误。

select timeout

OpenCV Error: Assertion failed (total() == 0 || data != NULL) in Mat, file /build/opencv-L65chJ/opencv-3.2.0+dfsg/modules/core/include/opencv2/core/mat.inl.hpp, line 431
Traceback (most recent call last):
  File "untitled.py", line 8, in <module>
    ret, frame = cap.read()
cv2.error: /build/opencv-L65chJ/opencv-3.2.0+dfsg/modules/core/include/opencv2/core/mat.inl.hpp:431: error: (-215) total() == 0 || data != NULL in function Mat

我搜索了很多地方,都找不到答案。您认为问题的根源或根源是什么?

标签: pythonopencvraspberry-piraspbianwebcam

解决方案


虽然我找不到我提到的主题的解决方案,但我觉得有必要做出一些解释。首先,Raspberry pi 4 4GB 版本已经存在问题。这些问题是由内核错误引起的,以及下面的链接。

链接:https ://www.cnx-software.com/2019/11/04/raspberry-pi-4-4gb-models-usb-ports-dont-work-on-ubuntu-19-10/

这个过程建议在树莓派上安装ubuntu系统。通过将 RAM 限制为 3072 可以解决这里的问题。但是,当我再次尝试时,他犯了同样的错误。

其次,我尝试了2GB版本的树莓派4,摄像头没有问题,问题就解决了。

我的理论是树莓派 4 的 4GB 版本的 USB 端口普遍存在问题,我向用户推荐 1GB 或 2GB 版本。

我希望他们尽快解决这个问题。祝大家工作顺利。


推荐阅读