Как обнаружить и исправить ломаные линии или фигуры в растровом изображении?

StackOverflow https://stackoverflow.com/questions/1824890

  •  22-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

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

В этой статье приведены некоторые фильтры и параметры: Лаборатория обработки изображений в C #

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top