12

次のコードがあり、円を検出したいと思います。

   img = cv2.imread("act_circle.png")
   gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
   circles = cv2.HoughCircles(gray,cv2.CV_HOUGH_GRADIENT)

属性がないようで、エラーは次のとおりです

'module' object has no attribute 'CV_HOUGH_GRADIENT'

この隠されたパラメータがどこにあるか誰かが知っていますか?

ありがとう

4

3 に答える 3

19

CV_HOUGH_GRADIENTモジュールに属しているcvため、次のものをインポートする必要があります。

import cv2.cv as cv

関数呼び出しをに変更します

circles = cv2.HoughCircles(gray,cv.CV_HOUGH_GRADIENT)
于 2012-10-18T15:11:18.213 に答える
17

私の場合、opencv 3.0.0を使用しており、次のように機能しました。

circles = cv2.HoughCircles(gray_im, cv2.HOUGH_GRADIENT, 2, 10, np.array([]), 20, 60, m/10)[0]  

つまり、の代わりにcv2.cv.CV_HOUGH_GRADIENT、私はちょうどを使用しましたcv2.HOUGH_GRADIENT

于 2015-09-01T07:34:53.063 に答える
5

OpenCV 3を使用する場合は、次のコードを使用してください。

img = cv2.imread("act_circle.png")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
circles = cv2.HoughCircles(gray,cv2.HOUGH_GRADIENT) # change here
于 2016-10-04T10:45:26.443 に答える