Я бы посоветовал инвертировать пороговое изображение, чтобы контуры были белыми, а фон - черным (cv2.threshold(cv2.THRESH_BINARY_INV)
). Затем вы ищете контуры с помощью cv2.findContours()
. Чтобы выбрать желаемый контур, вы можете сделать несколько фильтров, чтобы исключить другие контуры из контура, который вы надеетесь найти. Вы можете использовать фильтры в цикле For (for i in contours:
) и с некоторыми условными выражениями для фильтров. Для фильтров вы можете попробовать размер контуров (size = cv2.contourArea(i)
) или высоту и ширину (x, y, w, h = cv2.boundingRect(i)
). Тогда вы можете сделать такие заявления, как if size > 100 and h > 100 and w < 50: cv2.drawContours()
. Надеюсь, это даст вам представление о том, как действовать. Ура!