АЛГОРИТМ ВЕКТОРИЗАЦИИ РАСТРОВЫХ ИЗОБРАЖЕНИЙ В ОБЩЕМ ВИДЕ

Страница создана Екатерина Федорова
 
ПРОДОЛЖИТЬ ЧТЕНИЕ
124

Доклады ТУСУРа. 2004 г. Автоматизированные системы обработки информации, управления и проектирования

УДК 519.876.5:621.865.8
        АЛГОРИТМ ВЕКТОРИЗАЦИИ РАСТРОВЫХ ИЗОБРАЖЕНИЙ В ОБЩЕМ ВИДЕ

                                        С.Ю. Сташевский

      Данная работа посвящена процессам автоматизации обработки растровых изобра-
жений с целью преобразования их в векторный формат. Приведено краткое описание задачи
векторизации.

      В наше время в мире информационных технологий с каждым днем появляется все боль-
шее количество задач, решение которых переносится на компьютер. Решение любых задач на
компьютере пока представляет собой большой комплекс вычислений по заданным алгоритмам.
Поэтому предлагаемый в этом материале алгоритм векторизации, представляется полезным и
интересным для задач, связанных с автоматизацией обработки изображений.
      Областью применения алгоритма могут быть пакеты графических редакторов (векторно-
растровые) и различные геоинформационные системы (ГИС). Особенно актуален алгоритм век-
торизации именно для ГИС, так как процесс составления и формирования цифровых карт очень
трудоемкий и, как правило, этот процесс ручного (экспертного) происхождения.
      В ГИС решение задачи векторизации осуществляется с помощью специальных программ.
Их назначение – это обработка растровой карты местности с целью извлечения полезной ин-
формации об объектах на карте и сохранения этой информации в специальных векторных фор-
матах данных на любом виде носителя или в базах данных.

      Обзор векторизаторов ГИС
      Этот класс программных продуктов связан с вводом картографических данных. Поскольку
основная аналитическая работа в ГИС-пакетах реализуется на векторной модели данных, то
существует обширная группа задач по обработке растровых картографических изображений.
      В этом классе продуктов наблюдается бум у российских разработчиков. Западные реше-
ния чрезмерно дороги и базируются исключительно на UNIX-машинах. Отечественные разра-
ботчики предлагают более 15 различных пакетов, функционирующих на разных платформах и
по эффективности использования не уступающих зарубежным аналогам. Среди них отметим
следующие: SpotLight, Vectory (Consistent Software, Россия); Easy Trace (Easy Trace Group,
Россия ); MapEdit (АО «Резидент», Россия); AutoVEC(IBS, Россия).

      Основные этапы векторизации
      Термин «векторизация» подразумевает процесс преобразования растрового вида ин-
формации в векторный формат, который воспринимают программы автоматизированного
проектирования.
      Естественно, векторный формат более точно передает графическую информацию и бо-
лее компактен, чем растровый. Кроме того, любое редактирование растровых файлов крайне
затруднительно и требует больших затрат компьютерных ресурсов и времени оператора.
125

Доклады ТУСУРа. 2004 г. Автоматизированные системы обработки информации, управления и проектирования

      В мире до настоящего момента пока не придумали единого алгоритма векторизации рас-
тровых изображений. Это объясняется тем, что существует много условий как на входные фор-
маты и виды растровых изображений, используемых в различных областях жизнедеятельности
человека, так и на форматы выходных векторных данных. У каждой известной ГИС имеется
свой набор стандартов и сфер деятельности, для которых и создаются векторизаторы.
      В случае нашей задачи описания обобщенного алгоритма ограничимся самыми простыми
изображениями растровой карты. Изображение состоит из множества областей различного
цвета, эти области выглядят как многоугольники выпуклого или невыпуклого вида. Шум на изо-
бражении отсутствует или игнорируется. Пример такого изображения приведен на рис. 1.

                         Рис. 1 – Пример растрового изображения карты местности

      В связи с такой интерпретацией данных о карте можно выделить следующие этапы пре-
образования растра в его векторное представление:
      – загрузка растра (дисковые или другие операции);
      – настройка изображения;
      – выделение контуров и «крайних» точек областей;
      – группировка точек одной области, формирование многоугольника (вектора);
      – корректировка;
      – формирование векторного формата.
      Некоторые типы изображений требуют предварительной настройки. Настройка – это
процесс обработки исходного растрового изображения с целью приведения его к такому виду,
который предполагает конкретный алгоритм векторизации. Различают следующие виды на-
строек:
      – ручная настройка в растровом графическом редакторе (экспертная);
      – автоматическая настройка с применением графических фильтров и методов обработки;
126

Доклады ТУСУРа. 2004 г. Автоматизированные системы обработки информации, управления и проектирования

      – комбинированная настройка.
      Ручная настройка производится экспертом, знакомым с ограничениями векторизации.
Эксперт вручную редактирует растр, например он выделяет оставшиеся после сканирования
нечеткие линии и прорисовывает их более четко. Он также может изменять соотношения кон-
траста и яркости всего изображения, удалять шум.
      Автоматическая настройка – определенная заранее последовательность графических
фильтров, применяемых к обрабатываемому изображению. В результате такой обработки
предполагается получить требуемое растровое изображение.
      Комбинированная настройка – результат синтеза двух предыдущих в зависимости от
специфики проблемы.
      Выделение контуров областей и крайних точек – следующий этап, необходимый для
предварительного выделения точек которые описывают эти области. Но полученный результат
не даст информации о том, какая группа точек описывают заданную область, ведь замкнутых
областей одного цвета на изображении может быть сколько угодно (рис. 2). Для того чтобы ре-
шить эту проблему, нужно придумать способы по упорядочиванию точек одной области и опре-
делению их принадлежности к той или иной области.

                       Рис. 2 – Пример выделения контуров областей и крайних точек

      Группировка точек решает проблему упорядочивания и принадлежности. Алгоритмы, ко-
торые позволяют это делать, очень разнообразны и в общем случае сводятся к следующим
возможным решениям: обход контура; построение выпуклой оболочки; кластеризация.
      Метод обхода контура является одним из самых популярных алгоритмов. Он прост в реа-
лизации, достаточно быстр и эффективен. В результате обработки алгоритмом растра могут
быть получены списки «крайних» точек, а также всех остальных точек контура; в порядке на-
правления обхода контура. Эти точки формируют многоугольники, описывающие области кар-
ты. Другие методы в этой работе не рассматриваются из-за их сложности.
127

Доклады ТУСУРа. 2004 г. Автоматизированные системы обработки информации, управления и проектирования

      Корректировка служит для удаления «лишних» многоугольников. Слово «лишние» гово-
рит об избыточности информации. Обычно в таких задачах есть некоторые ограничения на ко-
личество областей, их линейные размеры и т.д. Для нас таким критерием служат линейные раз-
меры областей.
      Формирование векторного формата – конечный этап, на котором решаются дополни-
тельные задачи. Сюда относят нахождение различных статистических характеристик как всего
изображения, так и характеристик некоторых областей. Полученную векторную и другую (до-
полнительную) информацию заносят в определенную структуру данных, которая сохраняется
на носителях и используется в дальнейшем сторонними приложениями. Такая структура опре-
делена заранее.

      Состав растровой карты местности
      Вся исходная информация о карте уже существует и хранится в растровом виде. Но эту
информацию достаточно сложно описать математически.
      Как отмечено ранее, существует два основных способа представления цифровых карт:
      – векторный формат карты местности;
      – растровый формат карты местности.
      Предварительно рассмотрим состав и топологию растра. Растром может быть любая кар-
тинка, представленная в виде матрицы, элементами которой являются цвета.
      Абстрактно растр может иметь в своем составе несколько видов областей (фигур и т.д.).
Примеры таких областей представлены на рис. 3: области выпуклого вида (рис. 3, а); области
невыпуклого вида (рис. 3, б); области в виде замкнутых колец (рис. 3, в).

          а                                      б                                 в

                         Рис. 3 – Представления областей разных цветов на растре

      Такое разнообразие классов фигур затрудняет решение задачи векторизации в целом.
В этой работе решена задача векторизации для классов выпуклых и невыпуклых фигур.

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

Доклады ТУСУРа. 2004 г. Автоматизированные системы обработки информации, управления и проектирования

      Слова «фигура», «область», «многоугольник» и «полигон» впредь будем считать иден-
тичными.

      Рассмотрим схему (рис. 4), детально описывающую предложенное решение.

                   Загрузка растра и инициализация

        Выделение границ областей с помощью градиентного
                фильтра по четырем направлениям

        Выделение граничных точек с помощью градиентно-
               го фильтра по восьми направлениям

                                                                      Запуск алгоритма обхода
             Создаем и заносим крайние точки в массивы                        контура
                          по каждому цвету

                                                                       В результате получаем
             Выбираем по одной крайней точке из массива.               упорядоченный вектор
               Запускаем алгоритм выделения областей                      точек (полигон),
                                                                       описывающий область
                                                                      данного цвета, сохраняем
                                                                            информацию
           Фильтруем лишние точки в полученных полигонах

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

           Завершение векторизации, сохранение результатов
                 в определенных структурах, подсчет
                        некоторых параметров

                                     Рис. 4 – Алгоритм векторизации

      Выделяются следующие этапы работы алгоритма векторизации:
      – загрузка и инициализация;
      – подсчет используемых уникальных цветов и формирование таблицы цветов;
      – выделение контуров областей на растре;
      – выделение крайних точек областей на растре;
      – формирование массивов из точек, хаотически расположенных на изображении (по при-
знаку принадлежности точек с одинаковым цветом массиву точек этого цвета);
      – формирование векторной модели (на основе контуров всех областей, полученных при
использовании алгоритма обхода контура);
      – растеризация векторной модели (зрительная проверка на соответствие векторной мо-
дели растровой).
129

Доклады ТУСУРа. 2004 г. Автоматизированные системы обработки информации, управления и проектирования

      Результатом всего процесса векторизации является структура, в которой будет вся необ-
ходимая для алгоритма информация по всем областям.
      Основные проблемы при реализации возникают на этапах формирования массивов и век-
торной модели. Они заключаются в специфических требованиях к векторной модели, например
для нашего случая – «все полигоны должны храниться в выпуклом виде». Одна из идей полу-
чения выпуклых полигонов из невыпуклых основывается на ряде свойств: треугольник всегда
выпуклый; многоугольник с числом вершин четыре может иметь только одну точку
невыпуклости; многоугольник с числом вершин N может иметь, максимум,                     N–3 точек
невыпуклости.
     Видно, что простейшее решение – разбить невыпуклый многоугольник на элементарные
треугольники путем последовательного удаления по одной точке из полигона, так как любые
три точки описывают треугольник. Этот метод известен под названием «Триангуляция» (рис. 5).
      Впервые задача триангуляции была представлена в 1934 г. в работе советского матема-
тика Б.Н. Делоне и названа в дальнейшем «триангуляцией Делоне».
      Для нашей модификации алгоритма остается лишь определить порядок обхода, соседние
точки, выбор первой точки и т.д.

                              Рис. 5 – Иллюстрация алгоритма триангуляции

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

      Заключение
      Алгоритм векторизации представлен в общей рекомендательной форме. Это объясняет-
ся тем, что рассматриваемая задача оказывается всегда очень специфичной при ее решении.
Предложена общая конструкция задач, решение которых необходимо в большинстве случаев.
      В этом материале из-за большого количества аналитической информации не рассмотре-
ны следующие вопросы:
      – привязка объектов к реальным координатам;
      – интерактивный режим обработки изображения;
      – распознавание образов объектов.
      Алгоритм разработан и реализован программно автором в ходе выполнения дипломной
работы «Нахождение оптимальных маршрутов на векторизованной карте местности».
130

Доклады ТУСУРа. 2004 г. Автоматизированные системы обработки информации, управления и проектирования

                                       ЛИТЕРАТУРА
      1. Скворцов А.В. Применение триангуляции для решения задач вычислительной геомет-
рии / А.В. Скворцов, Ю.Л. Костюк // Геоинформатика. Теория и практика. Вып. 1. – Томск: Изд-во
Том. гос. ун-та, 1998. – С. 22–47.
Вы также можете почитать