Введение
Алгоритм обрезки — это метод, используемый в цифровой обработке изображений, основанный на математической морфологии. Он применяется в качестве дополнения к алгоритмам скелетизации и утонения для удаления нежелательных паразитных компонентов (шпоров). В данном случае «паразитные» компоненты относятся к ветвям линии, которые не являются ключевыми для общей формы линии и подлежат удалению. Такие компоненты часто возникают при использовании алгоритмов обнаружения границ или оцифровки. Область применения обрезки включает автоматическое распознавание рукописных символов. Непоследовательность в написании букв часто приводит к образованию нежелательных шпоров, которые необходимо устранить для более точной идентификации символов.
Математическое определение
Стандартный алгоритм обрезки удаляет все ветви, длина которых меньше заданного числа точек. Если паразитическая ветвь короче четырех точек, и мы запустим алгоритм со значением n = 4, эта ветвь будет удалена. Второй этап гарантирует, что основные стволы каждой линии не будут укорочены в ходе этой процедуры.
Структурные элементы
Х в массивах указывает на состояние "не имеет значения", то есть изображение может содержать либо 1, либо 0 в данной позиции.
Шаг 1: истончение
Примените этот шаг заданное количество раз (n), чтобы удалить любую ветвь, содержащую (n) или меньше пикселей.
Шаг 2: Найти конечные точки
В любом случае, когда условия для структурирующих элементов выполнены, центр матрицы 3x3 рассматривается как конечная точка.
Шаг 3: Расширяйте конечные точки
Выполните дилатацию, используя матрицу 3x3 (H), состоящую из одних единиц, и вставляйте единицы только в те места, где в исходном изображении (A) также была единица. Повторите это для каждой конечной точки во всех направлениях n раз.
Шаг 4: Союз X1 и X3
Возьмите результат шага 1 и объедините его с результатом шага 3, чтобы получить итоговые результаты.