我正在试图重现本教程。 不过,当我调用cv2.convexHull(cnt,returnPoints = False)
OpenCV错误:断言失败(total> = 0 &&(depth == CV_32F || depth == CV_32S))in cv :: convexHull,file C:\ builds \ master_PackSlaveAddon-win32-vc12-static \ opencv \ modules \ imgproc \ src \ convhull.cpp,第134行Traceback(最近调用的最后一个):文件“Z:/ Image processing / HypheArea / test.py”,第10行,在hull = cv2.convexHull(cnt,returnPoints = False)cv2.error :C:\ builds \ master_PackSlaveAddon-win32-vc12-static \ opencv \ modules \ imgproc \ src \ convhull.cpp:134:error:(-215)total> = 0 &&(depth == CV_32F || depth == 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
任何帮助将非常感激