ВОЛНОВОЙ АЛГОРИТМ ВЕКТОРИЗАЦИИ ЛИНЕЙНЫХ РАСТРОВЫХ ИЗОБРАЖЕНИЙ С.В. Москаленко Научный руководитель - д.т.н., профессор Ю.А. Гатчин
В статье рассмотрено новое решение проблемы векторизации бинарных растровых изображений, обладающее повышенной эффективностью. Под эффективностью понимается повышенное быстродействие и качество выходного изображения.
Введение
Достигнутые результаты в области цифровых методов представления и сжатия изображений на сегодняшний день не решают в полной мере задачу их эффективного представления, что делает поиск такого представления актуальным. Одним из путей решения представляется разработка интеллектуальных технологий обработки изображений, обеспечивающих не формализованное их кодирование, а распознавание их пространственной структуры, которая и является носителем заключенной в них информации, поскольку возможности извлечения полезной информации из изображений целиком и полностью определяется их пространственно-структурными свойствами.
На данный момент существует множество алгоритмов автоматической трассировки (векторизации) растра. Анализ выявил недостаточную надежность данных алгоритмов с точки зрения выходных характеристик (быстродействие, качество выходного изображения).
В статье рассмотрен подход, который обладает лучшими выходными параметрами за счет оптимизации основного алгоритма. При векторизации происходит отсеивание лишней информации, сохраняются информативные данные для последующего этапа распознавания образов.
Анализ существующих подходов
Задача распознавания может состоять из нескольких шагов. Одним из начальных будет являться этап перехода от растрового к векторному изображению. Под векторным представлением растрового изображения будем понимать такой нагруженный граф, у которого нагрузка вершин - пары координат x, y соответствующих узловых точек изображения. На данный момент существует множество алгоритмов трассировки (векторизации) растра. Их условно можно разделить на две группы: автоматической векторизации, когда происходит трассировка всего растрового изображения без вмешательства пользователя (все необходимые параметры задаются до запуска), и автоматизированной векторизации, когда весь процесс трассировки сопровождается корректировками пользователя. К первой группе относятся такие программные продукты, как CorelTrace Centerline, CorelTrace Advanced Outline (входят в состав пакета Corel Draw 12), AutoTrace Outline программы AutoTrace.
В данной статье упор сделан на автоматические алгоритмы векторизации. Был проведен их анализ по основным характеристикам, таким как скорость работы, процент потери важных информативных данных входного растра, процент искажения от первоначального изображения, целостность распознанных элементов, эффективность кодирования примитивов, наличие функции восстановления искажений и соответствие типов линий (входных-выходных).
Алгоритм CorelTrace Centerline обладает высокой скоростью работы, небольшим процентом искажения от первоначального растра. Данный алгоритм разбивает растр на примитивы по принципу: примитив (вектор или полилиния) считаются сформирован-
ными, если на пути их трассировки встретилось ветвление. После обнаружения ветвления трассировка идет по найденным ветвям, образуя новые примитивы. Данный алгоритм работает по принципу вычисления средней линии путем предварительного ис-тоньшения растра (рис. 1, б). И, значит, к недостаткам CorelTrace Centerline можно отнести, во-первых, потерю информации о контуре растрового примитива (остаются только координаты средней линии), а соответственно, и о типе вектора. Во-вторых, необходим ввод дополнительного этапа, реализующего истоньшение растрового изображения.
Еще один алгоритм, CorelTrace Advanced-Outline 12, в отличие от предыдущего метода, только оконтуривает растр (рис. 1, в). Это само по себе не является эффективным представлением примитива, так как в идеале выходной вектор должен определяться лишь координатами начала, конца и своим типом.
Рис. 1. Примеры работы векторизаторов: а - исходное изображение; б - CorelTrace Centerline; в - CorelTrace Advanced-Outline
б
а
в
Рис. 2. Вычисление точек средней линии растрового изображения
Существуют подходы, объединяющие достоинства двух описанных ранее алгоритмов. Происходит расчет средней линии одновременно с анализом контура [1]. При получении координат точки запускается процесс, состоящий из следующих этапов: центрирование точки указания, определение направления (путем построения циклической гистограммы), вычисление точек центральной линии. После определения предпочтительных направлений производится замер толщин (ширина линии в пикселях) в направлениях, перпендикулярных двум базовым, одновременно с этим происходит процесс вычисления точек центральной линии в обоих направлениях с шагом в одну растровую точку. Процесс замера толщин контролирует резкое изменение толщины, что
означает наличие утолщения, утоньшения или пересечения. При обнаружении вышеописанной ситуации процесс останавливается в данном направлении и начинается в противоположном (см. рис. 2). Попиксельный расчет толщин является весьма трудоемкой операцией. Также для работы алгоритма необходимо содействие пользователя в выборе определенных констант, таких как максимальная ширина линии и допустимый разрыв линии, что лишает систему автоматического режима работы.
Реализация алгоритма
В разработанном алгоритме векторизации отсутствует как попиксельное вычисление толщины, так и этап определения предпочтительных направлений. Сразу после ввода изображения запускается побитовое сканирование этого изображения на наличие «черных» точек растра. После получения исходной точки от нее в основных направлениях строится циклическая гистограмма по черным пикселям до первого белого. Гистограмма строится с определенным угловым шагом, шаг был взят равным пяти градусам. Для вычисления координат точек при построении гистограммы используется типовой алгоритм Брезенхема (генерации отрезка). В результате могут получиться гистограммы следующих типов: с ярко выраженными пиками либо же неопределенные.
Под ярко выраженным пиком понимается участок на графике, функция которого резко возрастает, а потом убывает. При этом участок должен быть достаточно узок. Так, например, если график будет иметь один или два пика, это будет говорить о том, что исходная точка принадлежит отрезку или дуге, т.е. линейному примитиву (рис. 3, а). Если на функции обнаружатся более двух пиков, это будет значить, что исходная точка лежит на пересечении линейных объектов (рис. 3, в). Неопределенной будем считать ту гистограмму, которая имеет недостаточно узкие пики (рис. 3, г). Такие пики суть отображение площадных объектов на растре. Проанализировав функции, можно отнести существующие объекты растрового изображения либо к площадным, либо к линейным.
Следующий шаг после построения гистограммы - определение толщины вектора (для линейных объектов). Если найдено только два явных пика, то можно сделать вывод, что исходная точка достаточно удалена от обеих вершин линейного объекта. Если же пик один, то точка примерно совпадает с одной из вершин. Для случая нахождения двух явных пиков должно быть вычислено среднее значение величин на гистограмме, лежащих в непосредственной локальной близости от точки экстремума, принадлежащей участку функции между двумя вершинами пиков (только одна точка экстремума может быть найдена). Полученное значение будет отражать толщину линии (рис. 3, а).
Для случая одного явного пика должно быть вычислено среднее значение величин, лежащих в окрестности точки перехода от выпуклого участка функции к вогнутому (или прямолинейному), которая может находиться как слева, так и справа от вершины пика. Полученное значение также будет отражать толщину линии (рис. 3, б).
Проанализировав гистограмму, мы будем знать толщину линии, координаты двух концов поперечного сечения и координаты исходной точки. Теперь можно найти точку центра масс на данном сечении - это будет его середина. Чтобы организовать отслеживание центральной линии и «линейность» растрового объекта, реализован волновой алгоритм. Суть его заключается в построении сферической волны, центр которой совпадает с последним найденным центром масс и радиусом, равным ширине растрового объекта в исходной точке.
Отцентрировав исходную точку на сечении, алгоритм генерирует окружность радиусом равным толщине линии, используя типовой алгоритм Брезенхема (генерации окружности). Построенная окружность должна пересечь границу растрового объекта с фоном 2п раз, в зависимости от результатов анализа построенной ранее гистограммы.
Например, если сделан вывод, что исходное сечение не совпадает с вершиной линейного объекта, значит, окружность должна пересечь границу четыре раза, так как растровый объект будет развиваться в двух направлениях.
Рис. 3. Примеры гистограмм растровых изображений (слева - растровое изображение, справа - гистограмма): а - дуга; б - исходная точка совпадает с вершиной прямой; в - исходная точка лежит на пересечении; г - площадной объект
Далее проведем через пары точек две прямые таким образом, чтобы образовалось два продольных сечения. Каждая из середин полученных сечений будет являться новым центром масс, из которого будет выходить очередная волна. Итерационное развитие волн в одном направлении будет продолжаться до тех пор, пока окружность не пересечет растровый объект в количестве точек, не равном двум, либо же не произойдет резкое изменение ширины продольного сечения, что будет говорить о наличии утонь-шения, утолщения или пересечения (рис. 4). При обнаружении вышеописанной ситуации процесс останавливается в данном направлении и начинается в противоположном. Таким образом, данный алгоритм получит координаты точек центральной линии с информацией о размере сечения в каждой. Эти параметры необходимы для векторного представления линейных растровых объектов.
Что касается генерации самой волны, то во время первой итерации необходимо строить полную окружность, а для последующих итераций можно ограничиться лишь разверткой (9/8)п. Развертка должна откладываться по обе стороны от перпендикуляра, построенного к сечению, которое было получено в результате предыдущего построения волны.
Волна
Рис. 4. Вычисление точек средней линии растрового объекта
Заключение
Разработанный алгоритм, предназначенный для обработки и отображения графических данных, обладает повышенной эффективностью, причем под эффективностью понимается не только повышение быстродействия алгоритма, но и улучшение качества получаемого решения. Эта эффективность обусловлена использованием генерации сферических волн для нахождения центральных линий растровых объектов. К тому же анализ гистограмм позволяет добиться автоматической работы алгоритма без вмешательства человека.
Преобразование изображения к векторному виду дает возможность редактирования и манипулирования распознанных объектов.
Литература
1. Крылов А.Б. Способ выбора растровых объектов на монохромном изображении с автоматическим вычислением геометрических параметров // Моск. гос. техн. ун-т им. Н.Э. Баумана - 2001. - Интеллектуальные технологии и системы. Вып. 5.
2. Анисимов Б.В., Курганов В.Д. Злобин В.К. Распознавание и цифровая обработка изображений: Учеб. пособие. - М.: Высш. шк., 1983. - 295 с. ил.
3. Горелик А.Л., Скрипкин В.А. Методы распознавания: Учеб. пособие. - 2-е изд., пе-рераб. и доп. - М.: Высш.шк., 1984. - 208 с., ил.
4. Дуда Р., Харт П. Распознавание образов и анализ сцен. - М.: Мир, 1976.
5. Прэтт У. Цифровая обработка изображений (в 2-х книгах). - М.: Мир, 1982.
6. Ту Дж., Гонсалес Р. Принципы распознавания образов. - М.: Мир, 1978.
7. Фу К. Последовательные методы в распознавании образов. - М.: Наука, 1971.
8. Фу К. Структурные методы в распознавании образов. - М.: Мир, 1977.
1. Хант Э. Искусственный интеллект. - М.: Мир, 1978.
9. Барабаш Ю.Л. Учет свойств признаков при распознавании // Известия АН СССР. Техническая кибернетика. - 1965. - №5.
10. Чечкин А.В. Математическая информатика. - М.: Наука. Гл. ред. физ.- мат. лит., 1991.
11. Загоруйко Н.Г. Прикладные методы анализа данных и знаний. - Новосибирск: Изд-во института математики, 1999.
12. Горелик А.Л, Гуревич И.Б., Скрипник В.А. Современное состояние проблемы распознавания. - М .: Радио и связь, 1985. - 160 с .
13. Журавлев Ю.И. Об алгебраическом подходе к решению задач распознавания и классификации // Проблемы кибернетики . - М : Наука, 1978. - Вып . 33. - С. 5-68.
14. Гренандер У. Лекции по теории распознавания образов. - М.: Мир, 1979, 1 том; 1981, 2 том; 1983, 3 том.
15. Жданов А. А. Об одном имитационном подходе к адаптивному управлению // Вопросы кибернетики. -Выпуск 2. - М, 1996. - С . 171-206.
16. Жданов А. А. Метод автономного адаптивного управления // Известия АН. Теория и системы управления. - 1999. - № 5. - С. 127-134.
17. Образовательный портал «Распознавание образов и искусственный интеллект» [Электронный ресурс]. - Режим доступа: http://www.ocrai.narod.ru, свободный. -Загл. с экрана. - Яз. рус.