УДК 004.932
ИСПОЛЬЗОВАНИЕ ПРЕОБРАЗОВАНИЯ ХАФА ДЛЯ ОБНАРУЖЕНИЯ ПРЯМЫХ ЛИНИЙ И ОКРУЖНОСТЕЙ НА ИЗОБРАЖЕНИИ
© 2014 М.А. Кудрина
Самарский государственный аэрокосмический университет имени академика С.П. Королёва (национальный исследовательский университет)
Поступила в редакцию 17.12.2013
В статье рассмотрены алгоритмы Хафа для выделения прямых и окружностей на изображении. Описана программа, разработанная на кафедре информационных систем и технологий Самарского государственного аэрокосмического университета им. академика С.П. Королева, позволяющая иллюстрировать работу данных алгоритмов и используемая в учебном процессе в курсе "Компьютерная графика". Ключевые слова: преобразование Хафа, обработка изображений, векторизация изображений, распознавание линий, распознавание окружностей, пространство Хафа.
На практике при обработке цифровых изображений часто возникает проблема обнаружения простых фигур, таких как прямые, окружности или эллипсы. Например, поиск прямолинейных сегментов изображений может использоваться в задаче навигации робота в незнакомой окружающей обстановке на основе видеоинформации от монокулярного источника [1]. Поиск окружностей и эллипсов применяется при решении задачи распознавания колец черенковского излучения в детекторе частиц [2].
Преобразование Хафа (Hough transformation), разработанное в 1962 г., стало эффективным средством решения таких задач. Метод позволяет указать параметры семейства кривых и обеспечивает поиск на изображении множества кривых заданного семейства.
ПРИМЕНЕНИЕ МЕТОДА ХАФА ДЛЯ ПОИСКА ЛИНИЙ
Прямая на плоскости описывается уравнением y = kx + b и может быть задана парой несовпадающих точек. Однако удобнее представить прямую с помощью двух других параметров р и в. Параметр р - это длина перпендикуляра, опущенного на прямую из начала координат, а в - это угол между данным перпендикуляром и осью х (см. рис. 1).
Плоскость (р, в) иногда называют пространством Хафа (Hough space) для набора прямых в 2-мерном случае или фазовым пространством [3].
Через одну точку декартовой плоскости можно провести бесконечное число прямых (см. рис.
Кудрина Мария Александровна, кандидат технических наук, доцент кафедры информационных систем и технологий. E-mail: maria [email protected]
Рис. 1. Задание прямой на плоскости параметрами р и 0
2,а). Если эта точка имеет координаты (x0, y0) на изображении, то все прямые, проходящие через неё, соответствуют следующему уравнению р(0) = x0 ■ cos 0 + y0 ■ sin 0.
Это соответствует синусоидальной кривой в пространстве (р, 0) (см. рис. 2,б). В свою очередь, каждой точке пространства (р, 0) соответствует набор точек (x, y) на изображении, образующий прямую.
Если синусоиды, соответствующие двум точкам декартовой плоскости, наложить друг на друга, то точка (в пространстве Хафа), где они пересекутся, будет соответствовать параметрам прямой, проходящей через обе эти точки. Таким образом, ряд точек, которые формируют прямую линию (см. рис. 2,в), определяют синусоиды, которые пересекаются в точке параметров (р0, 00) для этой линии (см. рис. 2,г). Поэтому, проблема обнаружения коллинеарных точек может быть сведена к проблеме обнаружения пересекающихся кривых.
Каждой точке (р0, 00) пространства (р, 0) можно поставить в соответствие счетчик, соответствующий количеству точек (x, y) , лежащих на прямой x ■ cos 00 + y ■ sin 00 = р0.
Таким образом, достаточно выбрать на изоб-
Компьютерные обучающие программы
' -300
а) прямые, проходящие через общую точку б) соответствующая прямым синусоида
О 20 0 400 600
в) прямая в декартовом пространстве
ЭО во 90 120 150 1Я> 210 2-Ю 27Т> Э00 330 380
г) набор синусоид в пространстве Хафа
Рис. 2. Декартова плоскость и пространство Хафа
ражении, построенном в полярных координатах, самые "жирные пятна", получив тем самым параметры соответствующей прямой.
ПРИМЕНЕНИЕ МЕТОДА ХАФА ДЛЯ ПОИСКА ОКРУЖНОСТЕЙ
Точки окружности можно представить формулой (х - а)2 + (у - Ь)2 = Я2, где (а, Ь) - координаты центра окружности, а Я - ее радиус.
Для однозначного задания окружности необходимо знать уже три параметра - координаты ее центра и радиус. Это приводит к увеличению
пространства Хафа на целое измерение. Задача
уф
упрощается, если радиус искомых окружностей заранее известен. В таком случае необходимо находить только координаты центров окружностей, и задача снова становится двумерной.
Очевидно, что набор центров всех возможных окружностей радиуса Я, проходящих через каждую конкретную точку, образует окружность радиуса Я вокруг этой точки. Таким образом, геометрическое место точек, которые могли бы быть центрами окружности данного размера, проходящей через эту точку, представляет собой окружность такого же размера с центром в голосующей точке (см. рис. 3).
Наилучшее решение относительно положе-
Рис. 3. Распознавание окружности методом Хафа
ния центра "наиболее вероятной" присутствующей в конкретном точечном множестве окружности соответствует точке пересечения максимального числа голосующих окружностей [4, 5].
Таким образом, алгоритм поиска окружностей заданного радиуса на изображении сводится к "рисованию" в фазовом пространстве окружностей с центрами во всех непустых точках изображения и дальнейшему поиску локальных максимумов пространства Хафа. При этом могут использоваться различные методы анализа пространства параметров, например, поиск фиксированного числа локальных максимумов, пороговая сегментация аккумуляторной функции или поэтапный исключающий поиск глобального максимума аккумуляторной функции [4].
На кафедре информационных систем и технологий Самарского государственного аэрокосмического университета им. академика С.П. Королева разработана программа, позволяющая иллюстрировать работу алгоритмов Хафа распознавания прямых и окружностей на изображении. Данная программа, написанная на языке С#, используется в учебном процессе в курсе "Компьютерная графика" и помогает студентам легче освоить преобразование Хафа, поскольку наглядно иллюстрирует вид пространства Хафа для различных входных данных.
СПИСОК ЛИТЕРАТУРЫ
1. Вершок Д.А. Алгоритмические средства обработки и анализа изображений на основе преобразования Хафа: Автореф. дисс. ... канд. техн. наук. БГУ информатики и радиоэлектроники. Минск, 2002. [Электронный ресурс]. URL: http:// neuroface.narod.ru/files/vershok_autoref.pdf (дата обращения 15.11.2013).
2. Лебедев С.А., Ососков Г.А. Быстрые алгоритмы распознавания колец и идентификации электронов в детекторе RICH эксперимента СВМ // Письма в ЭЧАЯ. 2009. Т. 6. № 2(151). С. 260-284.
3. Дегтярева А., Вежневец В. Преобразование Хафа (Hough transform). Компьютерная графика и мультимедиа. Выпуск №1(1)/2003. [Электронный ресурс]. URL: http://cgm.computergraphics.ru/ content/view/36 (дата обращения 15.11.2013)
4. Преобразование Хафа, его обобщения и модификации [Электронный ресурс]. URL: http://wiki.technicalvision.ru/index.php/ %D0%9F%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B 0%D0%B7%D0%BE%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%BE%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 (дата обращения 15.11.2013)
5. Лидке М.Б. Исследование и разработка метода распознавания кривых на плоскости [Электронный ресурс]. URL: http://www.masters.donntu.edu.ua/ 2012/iii/lidke/diss/index.htm (дата обращения 15.11.2013)
USING HOUGH TRANSFORMATION FOR DETECTING LINES AND CIRCLES IN PICTURES
© 2014 M.A. Kudrina
Samara State Aerospace University named after academician S.P. Korolyov (National Research University)
In article considered Hough algorithms for detecting lines and circles in pictures. A description of program that illustrate the work those algorithms is presented. Program developed by the department of information systems and technologies of the Samara State Aerospace university named after S.P.Korolev and is used in the educational process in the course "Computer graphics".
Key words: Hough transformation, picture processing, picture vectorization, line detection, circle detection, Hough space.
Mariya Kudrina, Candidate of Technics, Associate Professor of information systems and technologies Department. E-mail: [email protected]