Я пытался определить круги на следующем изображении, используя HoughCircles .
Вот код, который я использовалнастройка, чтобы найти все круги.
import cv2
import numpy as np
img = cv2.imread("images/coins.jpg", 0)
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
minDist = 247
circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,minDist,
param1=170,param2=80,minRadius=0,maxRadius=0)
print(circles)
#print("Number of circles detected ", circles.length)
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
# draw the outer circle
cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)
# draw the center of the circle
cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)
cv2.imshow('detected circles',cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()
Из-за всего, что я пытался, я не смог обнаружить одну монету.Обнаруженные круги выглядели следующим образом.
У меня есть три вопроса:
- В чем может быть причина того, чтовторая монета слева в первом ряду не обнаружена?
- Что делает параметр
minDist
?Не могли бы вы объяснить, как это работает?Я прочитал документацию, но не смог понять. - Что здесь означают
minRadius
и maxRadius
из zero
?