Мне нужно правильно очертить как можно больше засыпанных раствором камней в уличной зоне. Приведенный ниже код правильно обнаруживает некоторые из них на изображении камней «in.jpg», но неясно, почему многие из них остаются необнаруженными или обрисованы лишь частично. Я также хотел бы исправить такие случаи, как контур 56, 57 или 92, используя тот факт, что камни выровнены и в основном овальное изображение с обнаруженными контурами «out.jpg». Я знаю, как убрать очевидные выбросы, но перед этим мне нужно улучшить метод обнаружения.
Различные параметры (размытие 113 и т.д.) получены методом проб и ошибок.
Недостаточно просто посчитать камни, Мне нужно максимально точно воссоздать их форму.
Спасибо за ваши предложения!
Мне нужно правильно очертить как можно больше засыпанных раствором камней в уличной зоне. Приведенный ниже код правильно обнаруживает некоторые из них на изображении камней «in.jpg», но неясно, почему многие из них остаются необнаруженными или обрисованы лишь частично. Я также хотел бы исправить такие случаи, как контур 56, 57 или 92, используя тот факт, что камни выровнены и в основном овальное изображение с обнаруженными контурами «out.jpg». Я знаю, как убрать очевидные выбросы, но перед этим мне нужно улучшить метод обнаружения. [code]import cv2 img = cv2.imread('in.jpg') gray = cv2.bitwise_not(img) gray = cv2.cvtColor(gray, cv2.COLOR_BGR2GRAY) gray = cv2.GaussianBlur(gray, (113, 113), 0) thresh = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 61, 2) thresh = cv2.dilate(thresh, None, iterations=5) thresh = cv2.erode(thresh, None, iterations=1) cnts, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) print(f'Found {len(cnts)} contours') cv2.drawContours(img, cnts, -1, (0, 255, 0), 2) centroids = [cv2.moments(c) for c in cnts] for i, c in enumerate(centroids): cv2.putText(img, str(i), (int(c['m10'] / c['m00']), int(c['m01'] / c['m00']) - 5), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255), 2) cv2.imwrite('out.jpg', img) [/code] Различные параметры (размытие 113 и т.д.) получены методом проб и ошибок. Недостаточно просто посчитать камни, Мне нужно максимально точно воссоздать их форму. Спасибо за ваши предложения!