Информатика в техническом университете / Информатика в техническом университете. Компьютерная графика
.pdf
4.1. Методы и алгоритмы двухмерной компьютерной графики
значения пикселов изображения в области примыкания. Если все значения яркости пикселов изображения в области примыкания одинаковые (постоянные), новые значения яркости пикселов изображения будут такими же, как и старые. По этой причине сумма коэффициентов выбрана равной единице, при этом содержание низкочастотных компонентов сохраняется. По мере того как маска движется по области изображения с содержанием высокочастотных компонентов, любые быстрые изменения яркости усредняются оставшимися пикселами изображения в области примыкания, тем самым понижая содержание высокочастотных компонентов. Визуальным результатом низкочастотной фильтрации является слабая нерезкость изображения.
Высокочастотные фильтры выделяют высокочастотные компоненты изображения, оставляя содержание низкочастотных компонентов нетронутым. Содержание низкочастотных компонентов увеличивается по отношению к содержанию высокочастотных компонентов. Области изображения с высокой частотой будут хорошо освещены (станут ярче), а части с низкой частотой станут черными. Иногда резкость изображения увеличивается после высокочастотной фильтрации за счет выделения шума изображения. При использовании высокочастотной фильтрации возможно усиление края изображения. Ниже приведены две различные высокочастотные маски:
-1 |
-1 |
-1 |
1 - 2 |
1 |
|
-1 |
9 |
-1 |
-2 |
5 |
-2 |
-1 |
-1 |
-1 |
1 |
-2 |
1 |
Большое значение коэффициента центра маски определяет действие высокочастотного фильтра. По мере того как центр маски с большим значением перемещается по области изображения с высокой пространственной частотой (что означает большие изменения яркости элементов изображения), новое значение рассматриваемых элементов изображения многократно увеличивается. Меньшие отрицательные значения коэффициента маски, сгруппированные вокруг центра, уменьшают эффект большого весового фактора. В конечном итоге большие изменения яркости элементов изображения усиливаются, а области постоянной яркости элементов изображения останутся неизменными. Другими словами, области постоянной яркости элементов изображения (области низких частот изображений) не подвергаются этим преобразованиям.
Отдельно следует рассмотреть медианные фильтры. С помощью этих фильтров выполняется усредненное фильтрование. Усредненное фильтрование — пространственный алгоритм, который не попадает под категорию свертки. Усредненное фильтрование использует значение пикселов, содержащихся в области примыкания, для определения нового значения рассматриваемого пиксела. Однако новое значение яркости пиксела не вычисляется алгоритмически из значений яркости пикселов в области примыкания. Вместо этого пикселы в области примыкания сортируются в возрастающем порядке и отбирается среднее значе-
285
4. Методы, алгоритмы и форматы файлов компьютерной графики
ние яркости как новое значение рассматриваемого пиксела. Например, надо изменить значение яркости центрального пиксела в следующем окне преобразования:
^27 22 29^ 42 255 29 27 25 29
Значения яркости пикселов, отсортированные в возрастающем порядке, будут иметь вид
22, 25, 27, 29, 29, 29, 42, 255.
В результате среднее значение яркости 29 заменяет 255 в выходном изображении. Если 255 было значением пиксела шума, создавшего белое пятно на исходном изображении, то оно будет отфильтровано.
Результатом усредненного фильтрования является то, что любой случайный шум, содержащийся в изображении, будет эффективно устранен. Это происходит потому, что любое случайное резкое изменение в яркости пиксела в пределах области примыкания сортируется, т. е. оно помещается либо на вершину, либо на нижнюю часть отсортированных значений области примыкания. ч
Алгоритмы геометрических преобразований. Алгоритмы геометрических преобразований растровых данных изображений изменяют пространственное местоположение и/или структуру пикселов в изображении, основываясь на некоторых геометрических преобразованиях. Геометрические преобразования необязательно изменяют значения яркости элементов изображения, но они всегда изменяют положение пикселов изображения. Другими словами, значения яркости для данных пикселов изображения перемещаются в новую позицию. В этом состоит основное отличие алгоритмов геометрических преобразований от точечных и пространственных алгоритмов. Каждый из этих классов алгоритмов обработки изображения всегда изменял значение яркости пикселов изображения, в данных алгоритмах яркость изменять необязательно, хотя во многих алгоритмах яркость пикселов изменяется. Геометрические преобразования растровых данных широко применяются:
•как предварительный шаг в подготовке изображения для последующей точечной, пространственной обработки;
•для обеспечения работы алгоритмов распознавания, например после сканирования страниц текста с некоторым поворотом строк текста относительно
горизонтали; |
, |
• для обеспечения работы алгоритмов наложения текстуры; |
" |
• для обеспечения различных эффектов в изображениях. |
п |
Геометрические преобразования растровых данных изображения включают перемещение, масштабирование, сдвиг и поворот изображения.
Перемещение, масштабирование и сдвиг изображения. Перемещение изображения имеет смысл, только если это изображение является подызоб-
286
4.1. Методы и алгоритмы двухмерной компьютерной графики
ражением некоторого большего изображения. Предположим, что мы хотим переместить массив из п строк и к столбцов пикселов (изображение-источник) с координатами левого верхнего углового пиксела {а, Ь) в новое положение с координатами левого верхнего углового пиксела (с, d) (изображение-цель). Это преобразование очень простое; мы копируем пикселы из исходного положения до положения цели и (если хотим) заменяем все исходные пикселы, которые не являются пикселами цели, цветом фона. При условии, что надо предотвратить изменение пикселов изображения источника, когда изображение цели накладывается на него, и при условии, что четыре числа а, Ъ, с и d — это целые числа, проблем не возникает (рис. 4.14).
Однако если координаты начального и конечного положения не являются целыми числами, то необходимо выполнить дискретизацию координат. Аналогичная проблема имеет место и для всех других видов преобразований. Для решения этой проблемы были разработаны алгоритмы на основе кода Росштейна (Rothstein).
В качестве примера рассмотрим изменение размеров изображения только по горизонтали. Предположим, что пиксельная плоскость разделена на квадраты (один квадрат на один пиксел), и средняя яркость в квадрате имеет значение, назначенное для яркости соответствующего пиксела. Будем растягивать изображение, состоящее из серых квадратов, яркость которых определена значениями соответствующих пикселов. Обозначим коэффициент масштабирования (сдвига) plq, где р a q — простые целые числа. Тогда для растяжения пиксельной плоскости, состоящей из массива квадратов, с этим коэффициентом надо брать q столбцов квадратов изображения источника и разместить их так, чтобы охватить р столбцов квадратов изображения цели. Выполнение дискретизации по центрам квадратов полученной области даст в результате изображение цели.
Для эффективной реализации этого алгоритма на первом этапе генерируется код Росштейна для числа plq. Этот код представляет собой двоичную последовательность, описывающую линию, наклон которой равен qlp (любой сканирующий преобразователь линии может быть использован для генерации подобного кода). На рис. 4.15 показана линия с
1 1 0 наклоном 3/5 и с 15 (pxq) метками для фиксации пересечений этой линии с горизонтальными линиями сканирования.
Когда линия сканирования проходит слева направо, она пересекает горизонтальные линии сетки. Если столбец содержит такое пересечение сетки, он
287
4.1. Методы и алгоритмы двухмерной компьютерной графики
диционных алгоритмов поворота в плоскости. Рассмотрим поворот исходного изображения вокруг начала координат на угол а против часовой стрелки. Традиционные преобразования координат для поворота точек на непрерывной плоскости запишутся следующим образом:
|
Р' = АР, |
|
где Р' = |
координаты точки в повернутой системе координат; Р = |
|
|
У |
|
|
cos a |
sin а ! |
координаты в исходной системе координат; А = \-sina |
I — матрица по- |
|
|
" |
cosaj |
ворота.
Операция поворота пикселов должна выглядеть следующим образом: на основании значений яркости пикселов исходного изображения необходимо получить значения яркости пикселов с такой же координатной сеткой для повернутого изображения. При решении задачи будем основываться на методе реализации поворота непрерывного изображения. В отличие от поворота на непрерывной плоскости необходим переход к дискретным координатам:
Р' =
У \
где х, и за- |
целые числа. Однако для произвольного угла а функции sin и cos не |
|
Л |
||
|
являются целыми, поэтому необходимо округлять х до ближайшего целого.
Рассмотрим действие такого алгоритма. На рис. 4.17 |
Необработанная |
||
приведен пример поворота столбца пикселов на некоторый |
|
точка |
|
угол и результат дискретизации положения повернутых |
|
/ / |
|
пикселов. На основании значений яркости в узлах исходной |
_ ! / |
||
координатной сетки необходимо получить значения ярко- |
"71 ЛУ |
||
сти в узлах результирующей координатной сетки. Следова- |
|||
тельно, число пикселов дискретизированного изображения |
V |
/ |
|
не должно изменяться при повороте: одному пикселу ис- |
/V п |
||
ходного изображения должен соответствовать один пиксел |
|||
результирующего. Однако в данном случае такое условие |
Сдвоенная точка |
||
не выполняется. На рис. 4.17 видно, что существуют узлы, |
|||
|
|
||
которым соответствует более одного пиксела исходного |
Рис. |
4.17. Округле- |
|
изображения (сдвоенные точки) и узлы, которым не соот- |
ние |
координат пик- |
|
ветствует ни одного пиксела исходного изображения (необ- |
селов при повороте: |
||
работанные точки). Пусть а — шаг исходной (следователь- |
• — центр пиксела |
||
но, и результирующей) сетки. Тогда зона пиксела будет |
исходного изображе- |
||
иметь вид квадрата со стороной а. Значение наибольшего |
ния; • — центр пик- |
||
отрезка, который можно вписать в квадрат, равно его диа- |
села повернутого изо- |
||
|
бражения |
||
289
4. Методы, алгоритмы и форматы файлов компьютерной графики
гонали, т. е. asl. А поскольку сторона исходной координатной сетки также равна а, то возможен случай, когда один из отрезков, образованных координатной сеткой, целиком попадает в зону какого-либо пиксела. Это будет соответствовать появлению «сдвоенной» точки. Таким образом, поворот дискретизированного изображения при помощи алгоритма с округлением неизбежно приводит к появлению необработанных точек на изображении, что вносит искажения в исходное изображение.
Возможен следующий способ устранения этого эффекта. Поскольку операция преобразования координат выполняется для каждой точки исходного изображения, то число пар координат точек до обработки и после одинаково, однако на изображении присутствуют необработанные точки. Их наличие обусловлено тем, что нескольким точкам исходного изображения ставится в соответствие единственная точка повернутого изображения, что и приводит к появлению необработанных точек. Причиной этого является то, что исходная и результирующая координатные сетки имеют одинаковый шаг а. Наличие сдвоенных точек
является следствием неравенства а < аы2. Для устранения этого эффекта можно использовать различные шаги исходной и результирующей сеток путем введения промежуточной системы координат. Для любой точки промежуточной системы координат вычисляются соответствующие точки результирующей и исходной системы координат. В соответствии с чем производится присваивание значения яркости точкам результирующей системы координат. Таким образом, для построения взаимосвязи между исходной и повернутой системой координат, вводится промежуточная система координат с шагом координатной сетки в 2 раза меньшим. Это можно рассматривать как продвижение по исходному изображению с нецелым шагом, меньшим, чем шаг координатной сетки. Получаемый результат не требует никакой корректировки и выполняется за один проход. Однако это связано с увеличением вычислительных затрат, поскольку поворот производится для сетки с меньшим шагом, число узлов в которой в 2 раза больше, чем в исходной.
Более экономичными являются многопроходные алгоритмы геометрических преобразований растровых данных изображений. Предположим, что имеется исходное изображение, показанное на рис. 4.18, а. Выполним преобразование сдвига только для вертикальных рядов пикселов (рис. 4.18, б) и затем повторим аналогичный сдвиг только для горизонтальных рядов (рис. 4.18, в).
т.
а б в
Рис. 4.18. Поворот изображения за два прохода:
• исходное изображение; б — сдвиг по вертикали; в — сдвиг по горизонтали
290
4.1. Методы и алгоритмы двухмерной компьютерной графики
Если преобразования вертикального и горизонтального сдвига выполнены правильно, то в результате можно повернуть изображение, как показано на рис. 4.18, в. Двухпроходный метод быстрее, чем прямое применение формул поворота в однопроходных алгоритмах, так как этот метод оперирует только одним рядом вертикальных или горизонтальных пикселов в одном проходе, и вычисления в пределах каждого ряда могут быть выполнены инкрементно. Следует отметить, что во многих случаях для устранения нежелательных эффектов дискретизации необходима фильтрация изображения, которая также может быть выполнена отдельно для горизонтальных и вертикальных рядов пикселов.
Выполнение двух проходов (или многих проходов) преобразования может быть разделено на две подзадачи:
•определение преобразований для индивидуальных проходов по вертикальным и горизонтальным рядам пикселов;
•применение фильтрации для устранения эффектов дискретизации результатов алгебраических вычислений при генерации новых пикселов.
Идеи многопроходных алгоритмов можно использовать и в других алгоритмах обработки растровых данных изображений.
4.1.2. Входные данные растровые, выходные данные векторные
Иногда преобразования растровых данных в векторные называют векторизацией. Алгоритмы данного класса нашли применение в системах обработки изображений и распознавания образов. Одновременно с теоретическими разработками алгоритмов векторизации уделялось большое внимание разработке проблемно-ориентированных практических систем. Наибольшие успехи были достигнуты при создании систем распознавания печатного текста, которые обеспечивают почти 100%-ное правильное автоматическое распознавание при качественном сканировании текста, например программная система FineReader. Ввиду чрезвычайной сложности задач выделения двухмерных объектов и связей между ними на основе растровых бинарных или полутоновых изображений этих объектов, все системы имеют строгую предметную направленность. Кроме систем распознавания текста следует выделить системы:
•распознавания чертежных документов в САПР;
•технического зрения;
•распознавания географических карт;
•распознавания топологии интегральных схем;
•распознавания аэро- и космических снимков;
•обработки медицинских снимков;
•идентификации фотографий лица человека;
•системы идентификации отпечатков пальцев.
Области применения алгоритмов данного класса постоянно увеличиваются в связи с расширением использования растровых, сканирующих устройств вво-
291
4. Методы, алгоритмы и форматы файлов компьютерной графики
а |
б |
Рис. 4.19. Векторизация:
а — вручную; б — полуавтоматический
да графической информации. Отметим основные принципы обработки растровых данных, используемые в подобных системах:
•исходное растровое изображение всегда предварительно обрабатывается для удаления случайных помех и элементов изображения, не представляющих интерес для конкретной задачи. Методы и алгоритмы для такой обработки растровых изображений были рассмотрены в подразд. 4.1.1;
•предусмотрено три основных режима работы с изображением:
-ручной, при котором опорные точки векторного изображения и векторные контуры изображения наносятся и рисуются поверх пиксельного изображения вручную с помощью какого-либо графического редактора, как показано на рис. 4.19, а;
-полуавтоматический, при котором можно вручную контролировать процесс распознавания, а также контролировать выделение областей для распознавания изображения; на рис. 4.19, б показан результат полуавтоматического выделения областей в программе Photoshop по команде пользователя;
-полностью автоматический.
В алгоритмах векторизации реализуются четыре основных принципа распознавания изображений:
•последовательное распознавание от простых элементов изображения к сложным, от анализа бинарного представления к анализу полутонового;
•последовательный переход от локального анализа элементов изображения
кглобальному анализу;
•максимальное использование пространственно-логических отношений между элементами различных уровней представления графической информации;
•обязательный учет специфики решаемой задачи.
Рассмотрим более подробно алгоритмы векторизации на примере распознавания технических чертежей в САПР, представленных в виде бинарных растровых изображений. Чертежом называют документ, содержащий изображение предмета и другие данные, необходимые для его изготовления и контроля. Чертеж обычно содержит проекции предмета, которые в зависимости от их содержания делятся на виды, разрезы, сечения и сведения, необходимые для его изготовления (рис. 4.20). .•-, ,. - .^,
292
1.Наружные кромки притупить фасками 2x45°.
2.Все 16отверстийдиаметром 5 сверлить на глубину20.
Рис. 4.20. Пример растрового изображения чертежа
4. Методы, алгоритмы и форматы файлов компьютерной графики
Ручной ввод технических чертежей с помощью дигитайзеров очень медленный и дорогой процесс. Использование для этих целей сканеров позволяет быстро получить растровый формат изображений, однако необходимо иметь программы для преобразовывания изображения в векторную форму и затем в геометрические модели достаточно высокого уровня.
Основными элементами каждого чертежа являются линии, размеры, различная дополнительная информация. Каждый из этих элементов, в свою очередь, может быть представлен как составленный из различных частей, называемых примитивами. Основные примитивы приведены на рис. 4.21.
Цель распознавания изображений чертежей заключается в автоматическом формировании описания чертежа в примитивах, использующихся в системах САПР и которыми оперирует пользователь. Основными элементами чертежа считаются контурные (обычно утолщенные) линии, линии симметрии (штрихпунктирные линии), невидимые линии контура (обычно штриховые линии), сечения (заштрихованные области), размеры различных типов (линейные, радиальные и т. п.), обозначения допусков и подобные им элементы, которые характеризуются своей формой. Эти элементы в дальнейшем могут использоваться как основа для понимания чертежа, т. е. для его описания в терминах двухмерных объектов, характерных для конкретной области применения, содержащихся в специальных библиотеках САПР (например, болты, валы, штифты и т. п.), а также для восстановления трехмерных моделей деталей. Следует отметить, что формируемый уровень описания чертежа в терминах простейших графических примитивов недостаточен для современных САПР, и объем дальнейших доработок по доведению описания до нужного уровня остается весьма существенным. Автоматическое преобразование чертежно-графических изображений в формат САПР можно разделить на три основных этапа, не считая сканирования документа и получения растрового изображения:
•векторизация изображения для получения векторного представления в терминах простейших графических примитивов;
•распознавание векторной модели с целью получения описания чертежа в терминах универсальных элементов чертежа (примитивов чертежа);
•интерпретация описания для представления специализированных двухмерных объектов, имеющихся в библиотеках САПР, с параметрами и отношениями, как правило, в формате DXF, который будет рассмотрен в подразд. 4.3.2.
Существующий уровень теории распознавания изображений не позволяет полностью автоматизировать процесс распознавания чертежа, т. е. обойтись без вмешательства человека. Поэтому основная цель, которая должна быть достигнута, — минимизация объема рутинного ручного труда по кодированию графической информации.
Будем рассматривать процесс распознавания как последовательное преобразование графических данных от одного уровня представления к другому, имеющему более высокий уровень обобщения информации об исходном изображении. Конечная цель в данном случае достигается путем последовательного
294
