OpenCV - получение гладкой части продолговатой формы после порога - PullRequest
0 голосов
/ 13 сентября 2018

Я делаю порог на изображении и достигаю этого результата: Изображение после порога .

Теперь я хотел бы получить только контур самой большой продолговатой формы: продолговатая форма .

Как лучше всего добиться этого с OpenCV?Я знаю, что у формы есть некоторые ответвления.Есть ли возможность от них избавиться?

1 Ответ

0 голосов
/ 16 сентября 2018

Я бы посоветовал инвертировать пороговое изображение, чтобы контуры были белыми, а фон - черным (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(). Надеюсь, это даст вам представление о том, как действовать. Ура!

...