Attribute Error : none type object has no attribute ' shape '

Attribute Error : none type object has no attribute ' shape '

我一直在尝试从 raspberry pi

上的 piCamera 读取一些帧时遇到属性错误

这里是错误:

Traceback (most recent call last):
  File "/home/pi/ball-tracking/ball_tracking.py", line 48, in <module>
    frame = imutils.resize(frame, width=600)
  File "/usr/local/lib/python2.7/dist-packages/imutils/convenience.py", line 45, in resize
    (h, w) = image.shape[:2]
AttributeError: 'NoneType' object has no attribute 'shape'


if not args.get("video", False):
    camera = cv2.VideoCapture(0)

else:
    camera = cv2.VideoCapture(args["video"])

while True:
    # grab the current frame
    (grabbed, frame) = camera.read()


    if args.get("video") and not grabbed:
        break

   

似乎 frame 在这一行中被 return 编辑为 None,就好像你的相机无法读取图像一样:

(grabbed, frame) = camera.read()

然后,当调整 None 对象的大小时,程序会像我们在错误消息 AttributeError: 'NoneType' object has no attribute 'shape':

中描述的那样崩溃
frame = imutils.resize(frame, width=600)

this thread 中所述,某些相机驱动程序可能会在第一帧中 return False, None。一种可能的解决方法是验证 grabbed 是否为 False 并忽略此帧。

while True:
    grabbed, frame = camera.read()

    if not grabbed:
        continue

    # the rest of the program

'NoneType' 错误表示帧未传递给调整大小函数。 使用 cv2.capture 方法时,必须确保加载了正确的驱动程序,否则您将遇到相同的 NoneType 错误。

解决方法是手动添加驱动到etc/modules或者输入以下命令:

sudo modprobe bcm2835-v4l2 

加载 V4L2 驱动程序的简单命令。