cv2.convexityDefects错误

时间:2013-10-20 00:27:38

标签: python opencv ubuntu

我在使用convexityDevects时遇到问题。我收到错误:AttributeError: 'module' object has no attribute convexityDefects

你有效地使用了这个命令吗?

#! /usr/bin/env python

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,hierarchy = cv2.findContours(thresh,2,1)
cnt = contours[0]

hull = cv2.convexHull(cnt,returnPoints = False)
defects = cv2.convexityDefects(cnt,hull)
cv2.imshow('img',img)
cv2.waitKey(0)

cv2.destroyAllWindows()

1 个答案:

答案 0 :(得分:1)

Ubuntu 12.04附带过时的OpenCV 2.3.1-7(http://packages.ubuntu.com/precise/python-opencv),cv2.convexityDefects自OpenCV 2.4起可用。

您可以改用cv.ConvexityDefects。来自official docs

  

cv.ConvexityDefects(contour,convexhull,storage)→convexityDefects      参数:

   contour – Input contour.
   convexhull – Convex hull obtained using ConvexHull2() that should contain
                pointers or indices to the contour points, not the hull points
                themselves (the returnPoints parameter in ConvexHull2() should
                be zero).
   storage – Container for the output sequence of convexity defects.
             If it is NULL, the contour or hull (in that order)
             storage is used.
     

该函数找到输入轮廓的所有凸性缺陷并返回一个序列   CvConvexityDefect结构,其中CvConvexityDetect定义为: