Информатика в техническом университете / Информатика в техническом университете. Компьютерная графика
.pdf
4.1. Методы и алгоритмы двухмерной компьютерной графики
1 23М
•я*-
Рис. 4.21. Примитивы чертежа
обобщения данных до уровня, необходимого для представления чертежа в системах САПР.
Рассмотрим в качестве примера три уровня представления графической информации: исходное растровое изображение, промежуточное контурное представление и промежуточное скелетное представление. Единственным элементом исходного растрового представления является пиксел, который может принимать два значения: либо 1 (элемент объекта), либо 0 (элемент фона). Пример объекта исходного бинарного изображения приведен на рис. 4.22, а.
Растровое изображение характеризуется максимальной детализацией по сравнению с другими уровнями представления. Первым уровнем преобразования исходного растрового представления в векторное является контурное представление. Контурная форма представления (С-форма) содержит координаты внешних и внутренних границ (контуров) связных компонентов изображения, а также параметры самих связных компонентов (площадь, периметр, габариты и т. п.). Контурная форма бинарного объекта изображения приведена на рис. 4.22, б. Эта форма достаточно просто и однозначно может быть получена из растрового изображения. Такое представление весьма далеко от требуемого выходного представления и недостаточно структурировано, однако его удобно использовать для извлечения некоторых элементов чертежа (таких, как изолированные символы, потенциальные стрелки размерных линий, заполненные области и т. п.).
Скелетная форма представления (5-форма) используется как основа для распознавания элементов изображения. Она формируется в результате векторизации утоньшенного изображения, которое представляет собой множество растровых линий единичной ширины и содержит предпосылки для структуризации связных компонентов изображения. Скелетная форма бинарного объекта изображения приведена на рис. 4.22, в. 5-форма содержит два основных типа данных, используемых для дальнейшего распознавания: отрезки или сегменты (части связных компонентов утоньшенного изображения, ограниченные концевыми
Рис. 4.22. Пример исходного бинарного (а), контурного (б) и скелетного (в) представлений
295
4.Методы, алгоритмы и форматы файлов компьютерной графики
иузловыми точками) и узлы, описывающие связи между отрезками. На физическом уровне 5-форма представляется в виде трех файлов: файла паспортов, файла метрики и файла связей. В файле паспортов хранится описание каждого сегмента в виде ограниченного множества характеристик (длина; средняя ширина; угол наклона; координаты описываемого прямоугольника; тип сегмента: прямая, ломаная, дуга; кривизна для дуг окружностей; ссылки на файлы метрики и связей и др.). В файле метрики хранится метрическое описание сегментов в виде координат точек. В файле связей содержится информация о связях сегментов, стыкующихся в узловых точках. Все файлы взаимосвязаны между собой посредством ссылок. Хотя данное представление более близко к требуемому выходному представлению, оно еще остается чрезмерно детализированным (например, в скелетной форме один отрезок прямой может быть представлен в виде множества отрезков) и требует большого объема интерактивной работы для практического использования в САПР. Для достижения практически полезных результатов надо распознавать более сложные примитивы и объекты.
Собственно процесс векторизации растровых данных (после предварительной обработки) включает в себя следующие этапы:
•сегментация бинарных растровых данных или выделение областей;
•выделение контуров;
•выделение средних линий объектов;
•векторизация скелетных изображений;
•полигональная аппроксимация.
Сегментация бинарных растровых данных. Предполагается, что на документах (чертежах или описаниях) существуют блоки информации двух типов: текста и графики, размещенных, как правило, горизонтально и вертикально. Одной из первых задач (после фильтрации шумов, которая необходима для всех типов исходных растровых данных) в технологии векторизации является задача сегментации областей изображений на текст и графику.
Рассмотрим три метода сегментации изображения документа на компоненты: расширения, выделения профилей и преобразование Хоха (Hough).
Метод расширения включает просмотр черно-белых изображений. Алгоритм заменяет белые элементы изображения на черные между двумя любыми черными элементами, если расстояние между ними меньше, чем некоторый порог. Другие белые элементы изображения остаются неизменными. Алгоритм применяется сначала к строкам, а затем к столбцам. Два результирующих бинарных изображения объединяются путем применения логического И к каждому пикселу. Пороги в направлениях X и Y необязательно одинаковы. Сегментация приводит к расширению каждого блока, который будет состоять из одного типа данных (текст или графика).
Метод выделения профилей основан на том, что содержимое документа первоначально компоновалось в виде прямоугольных блоков, и изображение может быть рекурсивно разрезано на прямоугольные блоки. В результате документ представляется в форме XF-дерева с гнездами прямоугольных блоков.
296
4.1. Методы и алгоритмы двухмерной компьютерной графики
Применение метода основывается на очертаниях фрагментов изображений. ХУ-дерево получается в результате использования горизонтального или вертикального разделения на альтернативных уровнях дерева. Корень — это весь анализируемый документ и он может рассматриваться как единственное горизонтальное или вертикальное выделение. Выделенные вершины и уровни формируются в процессе альтернативного выделения. Число горизонтальных и вертикальных выделений на каждом уровне различно, поэтому итоговое дерево является бинарным.
Преобразование Хоха — метод обнаружения параметрически изображаемых форм, например прямых линий на зашумленных бинарных изображениях. Сегментация на основе преобразования Хоха основана на ряде предположений о документе. Документ обычно содержит несколько прямых линий. Таблицы содержат сплошные прямые линии, чертежи также преимущественно имеют прямые линии. Столбцы текста, как правило, разделены прямыми участками белого пространства. Текст обычно состоит из нескольких параллельных текстовых строк. Преобразование Хоха позволяет находить на бинарном изображении плоские кривые, заданные параметрически, например прямые, окружности, эллипсы и т. д. Обозначим 0 — точки фона, 1 — точки интереса. Задача преобразования Хоха состоит в выделении кривых, образованных точками интереса.
Рассмотрим семейство кривых на плоскости, заданное параметрическим уравнением:
F(aua2, ...,an,X, У) = О,
где F — некоторая функция; яь а2,..., ап — параметры семейства кривых; X, У— координаты на плоскости. Параметры семейства кривых образуют фазовое пространство, каждая точка которого (для определенных значений параметров аъ а2, ..., ап) соответствует некоторой кривой.
Идея преобразования Хоха состоит в поиске кривых (точек параметрического пространства), которые проходят через достаточное число точек интереса. Ввиду дискретности машинного представления и входных данных требуется перевести непрерывное параметрическое пространство в дискретное. Для этого вводим сетку на параметрическое пространство. Каждой ячейке сетки ставим в соответствие счетчик. Значение счетчика каждой ячейки устанавливаем равным числу точек интереса, через которые проходит хотя бы одна кривая, параметры которой принадлежат данной ячейке. Анализ счетчиков ячеек позволяет найти на изображении кривые, на которых лежит наибольшее число точек интереса.
Например, прямую на плоскости (рис. 4.23) можно задать следующим образом:
X cos Т + Y sin T - R,
где R — длина перпендикуляра, опущенного на прямую из начала координат; Т — угол между перпендикуляром к
о х
р и с # 4.23. Параметрическая прямая
297
4. Методы, алгоритмы и форматы файлов компьютерной графики
прямой и осью ОХ. Угол Т изменяется в пределах от 0 до 2я, a R ограничен размерами входного изображения.
Таким образом, функция, задающая семейство прямых, имеет вид
F(R, T,X,Y) = xcosT + y sin T-R.
В общем случае алгоритм поиска прямой на изображении при помощи преобразования Хоха имеет следующий вид:
1)обнулить счетчики всех ячеек;
2)для каждой точки интереса на изображении проверить каждую прямую, проходящую через данную точку, и увеличить соответствующий счетчик;
3)выбрать ячейки со значением счетчика, превышающим заданный порог. Гистограммы расстояний вдоль линий и их перпендикуляров могут быть
использованы для получения расстояний между словами и между строками. Обобщая эти данные, определяют пороги для алгоритмов группового размазывания, которые группируют вместе большие блоки данных.
Ряд алгоритмов сегментации основан на последовательном уточнении исходных изображений и чаще используется для анализа текстовых документов. Изображение сначала обрабатывается для выделения отдельных связных компонентов. На нижнем уровне анализа выделяются отдельные символы и большие значки. Затем символы сливаются в слова, слова — в строки, строки — в параграфы, параграфы — в большие блоки, если такое слияние возможно. Этими алгоритмами обычно определяют: являются ли связные компоненты частями текста, чертежа, областей полутоновых изображений, ограниченных порогом. Возможными характеристиками для выполнения такой классификации являются размер, ветвящиеся структуры, топология и мера формы.
Для каждой области можно подсчитать набор простейших числовых характеристик: площадь, периметр, компактность, статические моменты и т. п.
Площадь соответствует числу пикселов в области.
Периметр соответствует числу пикселов, принадлежащих границе области. При определении периметра рассматриваются два случая:
•пиксел лежит на границе области, если он сам принадлежит области и хотя бы один из его соседей области не принадлежит (внутренняя граница);
•пиксел лежит на границе области, если он сам не принадлежит области и хотя бы один из его соседей области принадлежит (внешняя граница).
Компактность — отношение квадрата периметра Р к площади А; С = Р/А. Например, для наиболее компактной фигуры — круга — С = 2п.
Статические моменты выделенных областей определяют центр тяжести области. Например, дискретный центральный момент Му области определяется следующим образом:
Ми= X (х-хсПу-ус)';
298
4.1. Методы и алгоритмы двухмерной компьютерной графики
- Х |
V |
- ! |
П |
jteReg |
П >eReg |
где п — общее число пикселов в области; Reg — выделенная область; х, у — координаты пикселов в пиксельной матрице.
На основе этих характеристик можно классифицировать получаемые области. Графическая информация на чертежах включает три основных класса объектов: линии, области и дискретные объекты. Поскольку эти классы объектов обычно обрабатываются и распознаются различными методами, то необходимо на начальной стадии провести их сегментацию на различные классы. Данная задача может быть эффективно решена с использованием морфологических операций эрозии и расширения. Действительно, выполняя эрозию структурирующим элементом, имеющим форму круга радиуса, равного половине максимальной ширины линий плюс один, удаляют все линии на изображении. Сохранятся лишь эрозированные области и, возможно, шум. Если решается некоторая конкретная задача распознавания (например, выделение стрелок на чертежах), то, исследуя форму выделенных объектов, можно отделить области заданной конфигурации от шума. Выполнив затем операцию расширения и вычитания из исходного изображения, получают изображение, содержащее только области. При выделении областей предполагается, что известна максимальная ширина линии. Ее также можно определить либо в автоматическом, либо в интерактивном ре-
жиме.
Второй часто встречаемой при векторизации задачей является сегментация объектов на линии (протяженные объекты) и дискретные объекты. Эта задача может решаться и на растровом представлении, как это было показано выше, если дискретные объекты имеют толщину, значительно превосходящую толщину линии. В более общем случае сегментация объектов может быть выполнена на их контурном представлении.
Этапы алгоритма разделения объектов на классы по их контурному представлению:
1) оконтуривание всех объектов изображения и их преобразование в векторную форму;
2)разделение всех объектов на два класса: линейные объекты и все остальные;
3)выделение средних линий из линейных объектов;
4)полигональная аппроксимация объектов и запись информации в базу данных.
Для разделения объектов на различные классы используется средняя толщина связного компонента, рассчитываемого на основе предположения о том, что связный компонент состоит из множества трапеций, по следующей формуле:
W =
4
где S и Р — площадь и периметр связного компонента соответственно.
299
4. Методы, алгоритмы и форматы файлов компьютерной графики
а б
Рис. 4.24. Выделение контура отслеживающим (а) и сканирующим (б) алгоритмом
Если подкоренное выражение превосходит некоторое заданное пороговое значение, то объект является линейным. Если площадь или периметр меньше соответствующих пороговых значений, то объект представляет собой шум.
Выделение контуров. Алгоритмы выделения контуров можно условно разбить на две группы: отслеживающие и сканирующие.
Отслеживающие алгоритмы основаны на том, что на изображении отыскивается объект (первый встретившийся пиксел объекта) и контур объекта отслеживается и векторизуется. Достоинством данных алгоритмов является простота, к недостаткам можно отнести их последовательную реализацию и некоторую сложность при поиске и обработке внутренних контуров. Пример отслеживающего алгоритма — алгоритм «бегающий муравей» — приведен на рис. 4.24, а.
На первом этапе алгоритма осуществляется сканирование изображения до нахождения первого пиксела объекта (первой черной точки). Затем «муравей» начинает двигаться вокруг этой точки по 8-связной окрестности против часовой стрелки. Первой анализируемой точкой 8-связной окрестности является точка, с которой он попал в центр окрестности. Движение по 8-связной окрестности осуществляется до тех пор, пока не будет найден новый пиксел объекта. Эта точка принимается за центр окрестности и все опять повторяется. Таким образом осуществляется движение по контуру до тех пор, пока контур не замкнется, т. е. очередная точка не совпадет с первой точкой контура, с которой началось отслеживание. Затем осуществляется поиск другого объекта и отслеживание повторяется.
Сканирующие алгоритмы основаны на просмотре (сканировании) всего изображения и выделения контурных точек без отслеживания контура конкретных объектов. На рис. 4.24, б показан пример выделения контура сканирующим алгоритмом.
Выделение средних линий объектов изображения. Задача выделения средних линий (скелетов) изображений является одной из основных задач предварительной обработки изображения. Средние линии позволяют описывать геометрические особенности объектов и удобны для последующей обработки. Термин
300
4.1. Методы и алгоритмы двухмерной компьютерной графики
«утонынение» — общий термин для обозначения процесса преобразования линий или других объектов изображения, имеющих ширину в несколько пикселов, в линии единичной ширины. Другими наиболее употребляемыми терминами для обозначения этой операции являются термины «скелетизация», «преобразование средних осей», «преобразование осей симметрии» и др.
К операции утоньшения предъявляются, как правило, три основных требования:
•связность объектов изображения и фона должна быть сохранена;
•концы средней линии должны располагаться как можно ближе к их истинному положению;
•центральные линии объектов должны быть выделены достаточно точно. Как правило, все существующие алгоритмы удовлетворяют этим требованиям.
Алгоритмы утоньшения можно условно разбить на несколько групп на основе идеи или метода, заложенных в них. Самая большая группа алгоритмов основана на идее итеративного удаления внешних слоев или контурных точек объектов до тех пор, пока на изображении останутся только точки скелета. Итеративные алгоритмы используют маску (как правило, размером 3 х 3), которая перемещается по всему изображению и в каждый момент времени она сопоставляется с соответствующим участком изображения, чтобы определить новое значение центрального пиксела. Таким образом, в результате просмотра всего изображения удаляется один (или несколько) из внешних слоев объекта. Количество просмотров изображения и как следствие время работы итеративных алгоритмов зависят от максимальной ширины объектов изображения.
Алгоритмы данной группы можно разделить на два класса: параллельные и последовательные. В параллельных алгоритмах окно располагается одновременно во всех пикселах изображения и при его обработке не используются новые (полученные на данной итерации) значения пикселов. При работе последовательных алгоритмов пикселы обрабатываются последовательно.
Векторизация скелетного представления исходных растровых данных.
На данном этапе утоньшенное, скелетизированное растровое изображение преобразуется в векторную структуру, сохраняющую топологию объектов исходного графического материала. Другими словами, объект (рис. 4.25, а) должен быть преобразован в соответствующий ему граф (рис. 4.25, б).
Методы получения векторного представления можно разделить на следующие группы: отслеживающие, сканирующие и их комбинация.
Комбинация сканирующих и отслеживающих методов достигается тем, что вначале в результате сканирующего просмотра изображения осуществляется его предварительная разметка. Каждый пиксел утоньшенного растра анализируется на основании его связности с восемью соседними пикселами и помечается определенным
301
4. Методы, алгоритмы и форматы файлов компьютерной графики
а |
б в |
г |
д |
еж |
Рис. 4.26. Типы ситуаций сканирования:
а— начало; б — конец; в — продолжение; г, д — слияние; е — разветвление;
ж— изолированная точка
образом. Все черные (единичные) пикселы утоньшенного растра в зависимости от расположения окружающих их пикселов в определенной окрестности классифицируются как конечная точка, элемент линии и узловая точка. Из такого размеченного растра выбираются пикселы, помеченные как конечные и узловые. Их координаты запоминаются в соответствующем файле. Далее, начиная с этих точек, отслеживаются объекты изображения и запоминаются в файле объектов. При этом создается векторное описание исходного изображения. Если при первоначальном сканировании исходного растра проставить для каждого пиксела число итераций утоньшения, то в векторное линейное описание можно ввести дополнительный атрибут — ширину линии. Объединение всех связанных пикселов утоньшенного растра в линейные структуры осуществляется за один просмотр исходного файла. В результате идентифицируются все линии изображения и места их пересечений, ветвлений и слияний, а на изображении выделяются особые точки (конечные или узловые) и отрезки связных компонентов (сегменты), ограниченные особыми точками.
Векторизация выполняется за один просмотр входного изображения и состоит из двух основных операций: обработки ситуаций и отслеживания отрезков в режиме сканирования. Типы ситуаций сканирования приведены на рис. 4.26. После просмотра всего изображения выполняется полигональная аппроксимация векторизованной информации, одновременно вычисляются характеристики отрезков, такие как средняя ширина, длина, габаритные размеры и т. д.
Полигональная аппроксимация. Полученное векторное представление объектов является избыточным и должно быть сжато. Для сжатия известно много методов, которые на первом уровне можно подразделить на две группы: методы, основанные на функциях первого порядка (полигональная аппроксимация), и методы, основанные на функциях второй и более степени.
Полигональная аппроксимация является средством компактного и эффективного представления линий для анализа формы и классификации образов. Она позволяет сократить количество входных данных и сгладить незначительные искажения линии. Аппроксимация должна обладать некоторыми свойствами:
• хорошо сохранять информацию, т. е. все существенные особенности формы не должны устраняться; *-- • не занимать значительных объемов памяти;
302
