
Во-первых, нам нужно удалить цветовой шум. Затем мы можем попробовать cv2.Canny и cv2.findCountours. Но как cv2.findCountours различает отдельные формы пересечений?
Я пробовал так:
Код: Выделить всё
img = cv2.fastNlMeansDenoisingColored(img, None, 6, 6)
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3))
img = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

Плохой результат...
Подробнее здесь: https://stackoverflow.com/questions/788 ... s-on-image