OpenCV(Python):AttributeError:' NoneType'对象没有属性'形状'

时间:2017-06-15 12:32:17

标签: image jpeg libraries

我目前正在研究spyder(通过anaconda 4.4)windows 10.以下代码给出了' NoneType'对象没有属性'形状'在试图避免这种情况时,我甚至尝试过使用argparse通过命令行获取输入图像。但是,这似乎也行不通。

这是我的代码:

import cv2
import argparse

ap = argparse.ArgumentParser()
ap.add_argument("-i","--image",required = True, help = "path to the image")
args = vars(ap.parse_args())

img = cv2.imread(args["image"])
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(img_gray, 127, 255, 0)
_,contours,_ = cv2.findContours(thresh,2,1)
print len(contours)
cnt = contours[0]

hull = cv2.convexHull(cnt,returnPoints = False)
defects = cv2.convexityDefects(cnt,hull)

for i in range(defects.shape[0]):
    s,e,f,d = defects[i,0]
    start = tuple(cnt[s][0])
    end = tuple(cnt[e][0])
    far = tuple(cnt[f][0])
    cv2.line(img,start,end,[0,255,0],2)
    cv2.circle(img,far,5,[0,0,255],-1)

    cv2.imshow('img',img)

    cv2.waitKey(0)

请阅读此处(http://www.pyimagesearch.com/2016/12/26/opencv-resolving-nonetype-errors/)在使用jpeg png库编译openCV时可能会遗漏。

请进行必要的修改。

感谢您的帮助。

0 个答案:

没有答案