Сегментирование круговых форм из двоичного изображения - PullRequest
7 голосов
/ 08 августа 2011

У меня есть несколько бинарных изображений, и моя задача состоит в том, чтобы сегментировать форму круга.Круги не являются идеальным округлым кругом, но все они будут выглядеть как круг.Вот несколько примеров изображений и то, что мне нужно:

enter image description here

Как вы можете видеть сверху, левые изображения - это оригинальные изображения, а правые изображения - то, что мне нужно сделать.Круги пересекаются с другими фигурами, но я хочу только круг, как указано красным.Потребуются воображаемые линии для замыкания круга.Что я могу сделать в этом случае в Обработка изображений?

РЕДАКТИРОВАТЬ: в случае, если изображение выше сломано, здесь: http://imageshack.us/photo/my-images/835/circleonly.jpg/

Ответы [ 2 ]

7 голосов
/ 09 августа 2011

Знаете ли вы радиусы дисков, которые вы ищете? Если да, то морфологические отверстия (эрозия, затем расширение) будут простыми и очень быстрыми. Результат с использованием Mathematica:

Opening[img, DiskMatrix[15]]

enter image description here

Если нет, как предлагалось другим, вычисление контурного изображения с последующим использованием преобразования Хафа было бы целесообразным методом. Изображение чуть выше показывает контурное изображение.

6 голосов
/ 09 августа 2011

Вы можете использовать грубое преобразование, сначала вам нужно изображение края, затем вы используете грубое преобразование, как вы можете видеть в этой статье

http://www.cis.rit.edu/class/simg782/lectures/lecture_10/lec782_05_10.pdf

http://www.sci.utah.edu/~gerig/CS6640-F2010/FINALPROJECT/Ballard-GHT-1981.pdf

http://www.sciencedirect.com/science/article/pii/003132039290064P

http://www.markschulze.net/java/hough/

...