У меня есть простое изображение с примерно 15 случайно расположенными кругами. Моя задача - определить круги, а затем провести прямую линию через круги, лежащие на одной вертикальной линии. Я все еще новичок в OpenCV.
Сначала я попытался определить местоположение кругов и использовал этот код:
image = cv2.imread('circle', 0)
img = cv2.medianBlur(image,5)
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
circles = cv2.HoughCircles(image,cv2.HOUGH_GRADIENT,
1,20,param1=40,param2=20,minRadius=0,maxRadius=0)
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(cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()`
Это вывод, который я получаю, который не имеет никакого смысла для меня:
![enter image description here](https://i.stack.imgur.com/nGx41.jpg)
Пожалуйста, помогите определить круги и провести прямую линию через круги.
РЕДАКТИРОВАТЬ: Входные изображения выглядят так:
![Input](https://i.imgur.com/VQ5Ri0W.jpg)