Я использую opencv findContours, чтобы найти количество объектов на изображении.Однако он всегда возвращает дублированный номер, потому что он обнаружит как внутренний, так и внешний край.
Однако я не могу использовать RETR_EXTERNAL, потому что в объекте все еще есть объект.
import cv2
import numpy as np
img = cv2.imread('image.jpg')
canvas = np.zeros(img.shape, np.uint8)
img2gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(img2gray,128,255,cv2.THRESH_BINARY_INV)
im2,contours,hierarchy = cv2.findContours(thresh, cv2.RETR_CCOMP, cv2.CHAIN_APPROX_TC89_L1)
print(len(contours))
Например, это изображение: https://pasteboard.co/Iz3wMjg.png
В этом случае возвращается 6, однако есть только 3 круга.Есть ли способ избежать этого?