У меня есть код, который определяет круговые формы, но я не могу понять, как это работает.OpenCV - Обнаружение круглых форм
Из этого кода:
- Как я могу найти радиус и центр окружности?
- Каково поведение `cv2.approxPolyDP 'для обнаружения кругов?
Теперь найти контуры сегментированного маски
contours, hierarchy = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
Сортировка контуры WRT контур прямоугольник X
contours.sort(key = lambda x:cv2.boundingRect(x)[0])
for contour in contours:
approx = cv2.approxPolyDP(contour, 0.01*cv2.arcLength(contour,True), True)
if len(approx) > 8:
# Find the bounding rect of contour.
contour_bounding_rect = cv2.boundingRect(contour)
mid_point = contour_bounding_rect[0] + contour_bounding_rect[2]/2, contour_bounding_rect[1] + contour_bounding_rect[3]/2
print mid_point[1]/single_element_height, ", ",