您好我正在使用OpenCV开发Raspberry Pi。我想尝试一个链接中的球跟踪教程 http://www.pyimagesearch.com/2015/09/14/ball-tracking-with-opencv/
但是当我编译它时,我得到一个错误:'NoneType'对象没有属性'shape'。
我该怎么办?
答案 0 :(得分:13)
这意味着某个应该返回图像的函数只返回None,因此没有shape属性。尝试 “print img” 检查你的图像是否为无或实际的numpy对象。
答案 1 :(得分:5)
我今天遇到了同样的问题,请检查cybseccrypt提到的图像路径。在imread之后,尝试打印图像并查看。如果你得到一个值,就意味着文件打开了,
img_src = cv2.imread('/home/deepak/python-workout/box2.jpg',0)
print img_src
希望这有帮助!
答案 2 :(得分:3)
您可能会收到错误,因为您的视频路径在某种程度上可能有误。确保您的路径完全正确。
答案 3 :(得分:2)
我也遇到了这个问题,浪费了很多时间进行调试。
首先,请确保您提供的路径有效,即该路径中有一张图片。
接下来,您应该注意 Opencv不支持包含Unicode字符的图像路径(请参阅ref)。如果您的图像路径包含Unicode字符,则可以使用以下代码读取图像:
import numpy as np
import cv2
# img is in BGR format if the underlying image is a color image
img = cv2.imdecode(np.fromfile(im_path, dtype=np.uint8), cv2.IMREAD_UNCHANGED)
答案 4 :(得分:0)
尝试处理错误,它是OpenCV给出的属性错误
try:
img.shape
print("checked for shape".format(img.shape))
except AttributeError:
print("shape not found")
#code to move to next frame
答案 5 :(得分:0)
这是因为图像路径错误或您写入的图像名称不正确。
如何检查? 首先尝试使用打印图像 打印(img) 如果它显示“ None”(无),则表示您输入了错误的图像路径,请纠正该路径,然后重试。
答案 6 :(得分:0)
我只是遇到了同样的问题。我通过更新最新版本的OpenCV来解决此问题。对我来说效果很好。希望你也没事。
答案 7 :(得分:0)
希望这可以帮助遇到相同问题的任何人
要确切地知道发生在哪里,因为正在运行的程序并未将其提及为行号错误
'NoneType' object has no attribute 'shape'
请确保在加载assert
后添加image/frame
对于图片
image = cv2.imread('myimage.png')
assert not isinstance(image,type(None)), 'image not found'
对于视频
cap = cv2.VideoCapture(0)
while(cap.isOpened()):
# Capture frame-by-frame
ret, frame = cap.read()
if ret:
assert not isinstance(frame,type(None)), 'frame not found'
用长篇幅的脚本帮助我解决了类似的问题
答案 8 :(得分:0)
我处理人工创建的图像,即我自己创建它们,然后在它们上训练神经网络以执行特定任务。 因此,我创建了这些图像并保存了它们,但是当我尝试使用cv2.imread(...)打开它们时,出现了此错误。事实证明,当人工保存 创建的图像,您需要添加 dtype = np.uint8 。那为我解决了这个问题!
答案 9 :(得分:0)
答案 10 :(得分:0)
我有同样的问题。我打开了另一个使用笔记本电脑的摄像头的程序。因此,我关闭了该程序,然后一切正常。我通过检查https://howto.streamlabs.com/streamlabs-obs-9/black-screen-when-using-video-capture-device-elgato-hd-60s-9508找到了这个答案。
答案 11 :(得分:0)
我遇到了cap = cv2.VideoCapture(0)的问题。我将其更改为cap = cv2.VideoCapture(1),然后它起作用了。由于未链接到正确的网络摄像头,因此它什么也没返回。也许这会帮助好运。
答案 12 :(得分:0)
我在尝试查找照片大小时遇到此错误。
Exception has occurred: AttributeError 'NoneType' object has no attribute 'shape'
在谷歌搜索大约 10 分钟后,我发现了这个链接 OpenCV: Resolving NoneType errors by Adrian Rosebrock。在那篇文章中他提到
<块引用>传递给 cv2.imread 的无效图像路径
虽然这确实解决了我的问题,但我希望它能解决您的问题。如果没有,我希望你也能在那个页面上找到一些有用的东西