Научная статья на тему 'Векторизация растровых изображений с использованием преобразования Хафа'

Векторизация растровых изображений с использованием преобразования Хафа Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
922
260
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Векторизация растровых изображений с использованием преобразования Хафа»

УДК 004.932

1 Кудрина М.А., 1Кирьяков С.А., 2Кудрин К.А., 1 Дегтярева О.А.

1 ФГБОУ ВПО "Самарский государственный аэрокосмический университет им. ак. С.П. Королева (Национальный исследовательский университет)"

2Самара, ФГУ "Самарский центр стандартизации и метрологии"

ВЕКТОРИЗАЦИЯ РАСТРОВЫХ ИЗОБРАЖЕНИЙ С ИСПОЛЬЗОВАНИЕМ ПРЕОБРАЗОВАНИЯ ХАФА

Аннотация. В статье рассмотрены алгоритмы Хафа для выделения прямых и окружностей на изображении. Описана программа, разработанная на кафедре информационных систем и технологий Самарского государственного аэрокосмического университета им. академика С.П. Королева, позволяющая иллюстрировать работу данных алгоритмов и используемая в учебном процессе в курсе "Компьютерная графика".

Ключевые слова: Преобразование Хафа, обработка изображений, векторизация изображений, распознавание линий, распознавание окружностей, пространство Хафа.

При автоматизированном анализе цифровых изображений часто возникает задача распознавания простых геометрических фигур, таких как прямые, круги или эллипсы. Например, поиск прямолинейных сегментов изображений может использоваться в задаче навигации робота в незнакомой окружающей обстановке на основе видеоинформации от монокулярного источника. Также идентификация геометрических объектов может использоваться для решения задач распознавания рукописных символов или для выделения границ металлических проводников на изображениях слоев цифровых интегральных микросхем и их технологических шаблонах [1].

Преобразование Хафа (Hough transformation), разработанное в 1962 г., стало эффективным

средством решения таких задач.

Назначение преобразования Хафа состоит в том, чтобы выделить на изображении группы точек, образующие те или иные геометрические фигуры (прямые, окружности, эллипсы и др.) , и найти параметры данных объектов. По сути, преобразованием Хафа решается задача векторизации, т.е. преобразование растровых изображений в векторные. Данный метод позволяет указать параметры семейства кривых и обеспечивает поиск на изображении множества кривых заданного семейства.

Классический алгоритм преобразования Хафа имеет дело с идентификацией прямых в изображении, но позже алгоритм был расширен возможностью идентификации позиций кругов, эллипсов, а также произвольных фигур [2, 3].

Алгоритм Хафа распознавания прямых

Прямая на плоскости описывается уравнением y=kx+b и может быть задана парой несовпадающих точек. При преобразовании Хафа важно учесть характеристики прямой не как точек изображения, а в терминах её параметров, то есть найти k — коэффициент наклона и b — точку пересечения прямой с осью y. Основываясь на этом факте, прямая y=kx+b может быть представлена в виде точки с координатами (b, k) в пространстве параметров. Однако в этом случае существует проблема описания вертикальных прямых, для которых значения параметров k и b бесконечны. Поэтому в данной ситуации удобнее представить прямую с помощью двух других параметров р и 0. Параметр р — это длина перпендикуляра, опущенного на прямую из начала координат, а 0 — это угол между данным перпендикуляром и осью х (см. рис. 1) .

Рис. 1. Задание прямой на плоскости параметрами р и 0

Плоскость (р, 0) иногда называют пространством Хафа (Hough space) для набора прямых в 2мерном случае или фазовым пространством [3].

Через одну точку декартовой плоскости можно провести бесконечное число прямых (см. рис. 2,а). Если эта точка имеет координаты (x0, y0) на изображении, то все прямые, проходящие через неё, соответствуют следующему уравнению:

р(0) = xO*cos0+yO*sin0.

Это соответствует синусоидальной кривой в пространстве (р, 0) (см. рис. 2,б). В свою очередь, каждой точке пространства (р, 0) соответствует набор точек (x, у) на изображении, образующий прямую.

Если синусоиды, соответствующие двум точкам декартовой плоскости, наложить друг на друга, то точка (в пространстве Хафа) , где они пересекутся, будет соответствовать параметрам прямой, проходящей через обе эти точки. Таким образом, ряд точек, которые формируют прямую линию (см. рис. 2,в), определяют синусоиды, которые пересекаются в точке параметров (р0, 00) для этой

линии (см. рис. 2,г) . Поэтому, проблема обнаружения коллинеарных точек может быть сведена к проблеме обнаружения пересекающихся кривых.

Каждой точке (р0, 00) пространства (р, 0) можно поставить в соответствие счетчик, соответствующий количеству точек (x, у), лежащих на прямой x•cos0O+y•sin0O=рO.

Вследствие дискретности растрового представления исходного изображения, каждой прямой в координатах (x, у) будет соответствовать не одна точка, а сгущение точек в координатах (р, 0). Таким образом, достаточно выбрать на изображении, построенном в полярных координатах, самые «жирные пятна» и для их центров произвести преобразование в полярные координаты, получив тем самым параметры соответствующей прямой. Схема алгоритма Хафа для нахождения прямых линий на изображении приведена на рис. 3.

1

б) соответствующая прямым синусоида

в) прямая в декартовом пространстве

г) набор синусоид в пространстве Хафа

Рис. 2. Декартова плоскость и пространство Хафа

Рис. 3. Схема алгоритма Хафа распознавания прямых

2

Алгоритм Хафа распознавания окружностей

Точки окружности можно представить формулой:

(x - a)2 + (y - b)2 = R2,

где (a, b) - координаты центра окружности, а R - ее радиус.

Для однозначного задания окружности необходимо знать уже три параметра — координаты ее центра и радиус. Это приводит к увеличению пространства Хафа на целое измерение. Задача упрощается, если радиус искомых окружностей заранее известен. В таком случае необходимо находить только координаты центров окружностей, и задача снова становится двумерной.

Очевидно, что набор центров всех возможных окружностей радиуса R, проходящих через каждую конкретную точку, образует окружность радиуса R вокруг этой точки. Таким образом, геометрическое место точек, которые могли бы быть центрами окружности данного размера, проходящей через эту точку, представляет собой окружность такого же размера с центром в голосующей точке. Наилучшее решение относительно положения центра "наиболее вероятной" присутствующей в конкретном точечном множестве окружности соответствует точке пересечения максимального числа голосующих окружностей [2, 4].

Таким образом, алгоритм поиска окружностей заданного радиуса на изображении сводится к "рисованию" в фазовом пространстве окружностей с центрами во всех непустых точках изображения и дальнейшему поиску локальных максимумов пространства Хафа. При этом могут использоваться различные методы анализа пространства параметров, например, поиск фиксированного числа локальных максимумов, пороговая сегментация аккумуляторной функции или поэтапный исключающий поиск глобального максимума аккумуляторной функции [2].

Учебная программа "Преобразование Хафа"

На кафедре информационных систем и технологий Самарского государственного аэрокосмического университета им. академика С.П. Королева разработана программа, позволяющая иллюстрировать работу алгоритмов Хафа распознавания прямых и окружностей на изображении. Данная программа используется в учебном процессе в курсе "Компьютерная графика". На рис. 4 представлен общий вид главного окна программы, в котором расположены обрабатываемые изображения и результаты обработки в виде формул найденных прямых и окружностей.

Рис. 4. Общий вид главного окна программы "Преобразование Хафа"

На рис. 5 приведен пример пространства Хафа, отображаемого на вкладке "Фазовая плоскость" для случая с распознаванием прямых.

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

3

Рис. 5. Вкладка "Фазовая плоскость" при распознавании прямых линий

ЛИТЕРАТУРА

1. Вершок Д.А. Алгоритмические средства обработки и анализа изображений на основе преобразования Хафа: Автореф. дис. канд. техн. наук / БГУ информатики и радиоэлектроники. — Минск,

2002. [Электронный ресурс]. - Режим доступа :

http://neuroface.narod.ru/files/vershok_autoref.pdf

2. Преобразование Хафа, его обобщения и модификации [Электронный ресурс]. - Режим доступа : http://wiki.technicalvision.ru/index.php/%D0%9F%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%B E%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%A5%D0%B0%D1%84%D0%B0,_%D0%B5%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B E%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%BC%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0% D1%86%D0%B8%D0%B8

3. Анна Дегтярева, Владимир Вежневец. Преобразование Хафа (Hough transform). Компьютерная графика и мультимедиа. Выпуск №1(1)/2003. [Электронный ресурс]. - Режим доступа : http://cgm.computergraphics.ru/content/view/36

4. Лидке М.Б. Исследование и разработка метода распознавания кривых на плоскости [Электронный ресурс]. - Режим доступа : http://www.masters.donntu.edu.ua/2012/iii/lidke/diss/index.htm

4

i Надоели баннеры? Вы всегда можете отключить рекламу.