OpenCV countour / convexHull错误

时间:2016-06-17 09:34:49

标签: python windows opencv contour

我正在尝试重现this教程。但是,在调用cv2.convexHull(cnt,returnPoints = False)

时出现错误
  

OpenCV错误:断言失败(总计> = 0&&(深度== CV_32F ||深度== CV_32S))在cv :: convexHull中,文件C:\ builds \ master_PackSlaveAddon-win32-vc12-static \ opencv \ modules \ imgproc \ src \ convhull.cpp,第134行   Traceback(最近一次调用最后一次):     文件" Z:/图像处理/ HypheArea / test.py",第10行,in       hull = cv2.convexHull(cnt,returnPoints = False)   cv2.error:C:\ builds \ master_PackSlaveAddon-win32-vc12-static \ opencv \ modules \ imgproc \ src \ convhull.cpp:134:错误:( - 215)总计> = 0&& (深度== CV_32F ||深度== CV_32S)函数cv :: convexHull

示例代码:

import cv2
import numpy as np

img = cv2.imread('star.jpg')
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(img_gray, 127, 255,0)
contours = cv2.findContours(thresh,2,1)
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)
cv2.destroyAllWindows()

我已经尝试将我的数组转换为int32或float32,但它没有帮助。

Windows 7,Python 2.7,OpenCV 3.0.0

非常感谢任何帮助

0 个答案:

没有答案