Как обнаружить и исправить ломаные линии или фигуры в растровом изображении? - PullRequest
2 голосов
/ 01 декабря 2009

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

Если у вас есть идея, пожалуйста, дайте мне знать.

Ответы [ 3 ]

2 голосов
/ 01 декабря 2009

Вот простой алгоритм для лечения небольших разрывов:

Сначала используйте фильтр, который создает черный пиксель, когда любой из его восьми соседей черный. Это увеличит ваш общий план.

Далее, используйте прореживающий фильтр, который удаляет лишние контуры, но оставляет заполненные пробелы в покое.

См. Эту статью для некоторых фильтров и параметров: Лаборатория обработки изображений в C #

1 голос
/ 03 декабря 2009

Может быть Преобразование Хафа может вам помочь. Бонус: вы получаете параметры линий для вашего векторного файла.

1 голос
/ 01 декабря 2009

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

То, как вы выбираете структурирующий элемент для выполнения закрытия, также может повысить или понизить производительность.

Статья в Википедии очень теоретическая (или математическая), поэтому вы можете обратиться к Google или к любой книге по обработке изображений, чтобы получить более подробное объяснение того, как это делается.

...