Я пытаюсь обнаружить круги в изображении, и я использую OpenCV Python для этого. Я сталкиваюсь с проблемами, когда использую метод HoughCircles. Я использую следующее custom image, но мой код не может обнаружить оба круга.Определение параметров в методе HoughCircles OpenCV
Я попробовал следующую реализацию
circles = cv2.HoughCircles(thresh1,cv2.cv.CV_HOUGH_GRADIENT,2,1,param1=100,param2=100,minRadius=0,maxRadius=1000)
и это правильно только обнаружение большего круга в изображении. Я уверен, что если я потрудился с параметрами, я мог бы напасть на комбинацию, которая работает, но есть ли способ, который я могу вычислить, или выяснить параметры, учитывая изображение?
EDIT
Вот весь код, который я написал:
import cv2
import numpy as np
def show(s , i):
cv2.imshow(s , i)
cv2.waitKey(0)
cv2.destroyAllWindows()
img = cv2.imread('ball2.jpg')
show("img" , img)
img = cv2.medianBlur(img,5)
cimg = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh1 = cv2.threshold(cimg,10,255,cv2.THRESH_BINARY)
show('thresh' , thresh1)
circles = cv2.HoughCircles(thresh1,cv2.cv.CV_HOUGH_GRADIENT,2,1,param1=100,param2=100,minRadius=0,maxRadius=1000)
print circles
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
# draw the outer circle
cv2.circle(thresh1,(i[0],i[1]),i[2],(100,150,120),2)
# draw the center of the circle
cv2.circle(thresh1,(i[0],i[1]),2,(0,0,0),3)
cv2.imshow('detected circles',thresh1)
cv2.waitKey(0)
cv2.destroyAllWindows()
Не могли бы вы опубликовать весь код, чтобы мы точно знали, где проблема? –