Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

114

.pdf
Скачиваний:
26
Добавлен:
05.06.2015
Размер:
1.45 Mб
Скачать

ТЕХНОЛОГИЯ ОБРАБОТКИ ГРАФИЧЕСКОЙ ИНФОРМАЦИИ

Компьютерная графика

Одним из популярных направлений использования персонального компьютера является компьютерная графика. В каждой организации возникает потребность в рекламных объявлениях, листовках, буклетах и т.д. В связи с появлением и развитием Интернета появилась широкая возможность использования графических программных средств. Росту популярности графических программных средств способствовало развитие World Wide Web («всемирной паутины»), которая связала воедино миллионы «домашних страниц».

Различают три вида компьютерной графики: растровая графика, векторная графика и фрактальная графика. Они отличаются принципами формирования изображения при отображении на экране монитора или при печати на бумаге.

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

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

171

Компьютерная графика

ших геометрических элементов, решаются средствами векторной графики проще. Имеются примеры высокохудожественных произведений, созданных средствами векторной графики, но они скорее исключение, чем правило.

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

172

Растровая графика

нее. Существует несколько алгоритмов выполняющих эту задачу, например, цифровой дифференциальный анализатор и алгоритм Брезенхема.

Алгоритм Брезенхема для генерации окружностей.

В растр нужно разлагать не только линейные, но и другие, более сложные функции. Разложению конических сечений, т.е. окружностей, эллипсов, парабол, гипербол, посвящено значительное число работ. Наибольшее внимание уделено окружности. Один из наиболее эффективных и простых для понимания алгоритмов генерации окружности принадлежит Брезенхему.

Вначале необходимо сгенерировать только одну восьмую часть окружности. Остальные ее части могут быть получены последовательными отражениями. Если сгенерирован первый октант (от 0° до 45° против часовой стрелки), то второй октант можно получить зеркальным отражением относительно прямой у = х, что дает в совокупности первый квадрант. Первый квадрант отражается относительно прямой х = 0 для получения соответствующей части окружности во втором квадранте. Верхняя полуокружность отражается относительно прямой у = 0 для завершения построения.

Растровая развертка сплошных областей. Возможность представления сплошных областей в растровом графическом устройстве является его уникальной характеристикой. Генерация сплошных областей из простых описаний ребер или вершин называется растровой разверткой сплошных областей, заполнением многоугольников или заполнением контуров. Для этого можно использовать несколько методов, которые обычно делятся на две широкие категории: растровая развертка и затравочное заполнение.

Вметодах растровой развертки пытаются определить

впорядке сканирования строк, лежит ли точка внутри многоугольника или контура. Эти алгоритмы обычно идут от «верха» многоугольника или контура к «низу».

Вметодах затравочного заполнения предполагается, что известна некоторая точка (затравка) внутри замкнутого контура. В алгоритмах ищут точки, соседние с затравочной и расположенные внутри контура. Если соседняя точ-

174

Растровая графика

ка расположена не внутри, значит, обнаружена граница контура. Если же точка оказалась внутри контура, то она становится новой затравочной точкой и поиск продолжается рекурсивно.

Растровая развертка многоугольников. Можно разработать эффективный метод растровой развертки многоугольников, если воспользоваться тем фактом, что соседние пиксели, вероятно, имеют одинаковые характеристики (кроме пикселов граничных ребер). Это свойство называется пространственной когерентностью.

Алгоритм с упорядоченным списком ребер. Используя эти методы, можно разработать эффективные алгоритмы растровой развертки сплошных областей, называемые алгоритмами с упорядоченным списком ребер. Эффективность этих алгоритмов зависит от эффективности сортировки.

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

Алгоритмы заполнения с затравкой. В рассмотренных алгоритмах заполнение происходит в порядке сканирования. Иной подход используется в алгоритмах заполнения с затравкой. В них предполагается, что известен хотя бы один пиксель из внутренней области многоугольника. Алгоритм пытается найти и закрасить все другие пиксели, принадлежащие внутренней области. Области могут быть либо внутренние, либо гранично-оп- ределенные. Если область относится к внутренне-опреде- ленным, то все пиксели, принадлежащие внутренней части, имеют один и тот же цвет или интенсивность, а все пиксели, внешние по отношению к области, имеют другой цвет. Если область относится к гранично-определен- ным, то все пиксели на границе области имеют выделенное значение или цвет. Алгоритмы, заполняющие внут- ренне-определенные области, называются внутренне-за- полняющими, а алгоритмы для гранично-определенных областей — гранично-заполняющими.

175

Векторная графика

Векторная графика

Как в растровой графике основным элементом изображения является точка, так в векторной графике основным элементом изображения является линия, при этом не важно, прямая это линия или кривая.

В растровой графике тоже существуют линии, но там они рассматриваются как комбинации точек. Для каждой точки линии в растровой графике отводится одна или несколько ячеек памяти (чем больше цветов могут иметь точки, тем больше ячеек им выделяется). Соответственно, чем длиннее растровая линия, тем больше памяти она занимает. В векторной графике объем памяти, занимаемый линией, не зависит от размеров линии, поскольку линия представляется в виде формулы, а точнее говоря, в виде нескольких параметров. Чтобы ни делали с этой линией, меняются только ее параметры, хранящиеся в ячейках памяти. Количество же ячеек остается неизменным для любой линии.

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

Объекты векторной графики хранятся в памяти в виде набора параметров, но надо помнить о том, что на экран все изображения все равно выводятся в виде точек. Перед выводом на экран каждого объекта программа производит вычисления координат экранных точек в изобра жении объекта, поэтому векторную графику иногда называют вычисляемой графикой. Аналогичные вычисления производятся и при выводе объектов на принтер.

176

Векторная графика

Как и все объекты, линии имеют свойства. К этим свойствам относятся: форма линии, ее толщина, цвет, характер линии (сплошная, пунктирная и т.п.). Замкнутые линии имеют свойство заполнения. Внутренняя область замкнутого контура может быть заполнена цветом, текстурой, картой. Простейшая линия, если она не замкнута, имеет две вершины, которые называются узлами. Узлы тоже имеют свойства, от которых зависит, как выглядит вершина линии и как две линии сопрягаются между собой.

Основные цветовые модели

Основные цветовые модели

Модель RGB построена на основе строения глаза. Она идеально удобна для светящихся поверхностей (мониторы, телевизоры, цветные лампы и т.п.). В основе ее лежат три цвета: Red — красный, Green — зеленый и Blue — синий. С помощью этих трех основных цветов можно получить почти весь видимый спектр. Например, желтый цвет — это сложение красного и зеленого. Поэтому RGB

называют аддитивной системой смешения цветов. Модель CMY применяется для отражающих поверх-

ностей (типографских и принтерных красок, пленок и т.п.). Ее основные цвета: Cyan — голубой, Magenta — пурпурный и Yellow — желтый, являются дополнительными к основным цветам RGB. Дополнительный цвет — разность между белым и данным, например, желтый = = белый — синий. Поэтому CMY называют субтрактивной системой смешения цветов. Например, при пропускании света через пурпурный объект поглощается зеленая часть спектра, если далее пропустить через желтый объект, то поглотится синяя часть спектра и останется лишь красный цвет. Данный принцип используют светофильтры.

Наряду с системой CMY также часто применяют и ее расширение CMYK. Дополнительный канал К (от англ. BlасК) — черный. Он применяется для получения более «чистых» оттенков черного. В цветных принтерах чаще всего используется четыре красителя. Данная система широко применяется в полиграфии.

В 1931 г. была принята модель СIE (Commission International de l'Eclairage — Международная комиссия по освещению), в качестве основы которой был выбран двумерный цветовой график и набор из трех функций реакции глаза, исключающий отрицательные области и удобный для обработки. Гипотетические цвета CIE — X, Y и Z. Треугольник XYZ задан так, что в него входит видимый спектр. Комиссия решила ориентировать треуголь-

178

Основные цветовые модели

ник XYZ таким образом, что равные количества гипотетических основных цветов XYZ давали в сумме белый.

В1953 г. была разработана модель YIQ:

Вканале Y яркость подобрана так, что она соответствует цветовой чувствительности глаза. Канал I соответствует цветам от голубого до оранжевого (теплым тонам). Канал Q — от зеленого до пурпурного. В качестве опорного белого был взят источник с температурой 6500 К.

Модель HSV. В цвете можно выделить его тон — преобладающий основной цвет (длину волны, преобладающей в излучении), насыщенность цвета — чем она больше, тем «чище» цвет (то есть ближе к тоновой волне), например, у белого цвета — насыщенность = 0, так как невозможно выделить его цветовой тон, яркость (у черного цвета = 0, у белого = 1). Таким образом, можно построить трехмерное цветовое пространство HSV — Hue, Saturation, Volume (Тон, Насыщенность и Яркость). Обычно его представляют в виде конуса. Начало координат — вершина конуса — черный цвет. Высота, направленная к основанию, — яркость. Точка пересечения высоты с основанием — белый цвет. На высоте находятся оттенки серого цвета — от черного (вершина конуса) к белому. На окружности, ограничивающей основание конуса, находятся чистые цветовые тона: от красного (0 рад), через зеленый (2л/3 рад), к синему (4л/3 рад). Радиус конуса — насыщенность цвета. HSV часто представляют и в виде шестигранного конуса, у которого в основании лежит правильный шестиугольник с вершинами, соответствующими следующим цветам: красный, желтый, зеленый, голубой, синий, пурпурный.

179

Цветовая палитра

Цветовая палитра

Цветовая палитра — это таблица данных с информацией о коде закодированного цвета. Эта таблица создается и хранится вместе с графическим файлом.

Самый удобный для компьютера и самый распространенный способ кодирования цвета — 24-разрядный, True Color. В этом режиме на кодирование каждой цветовой составляющей R (красной), G (зеленой) и В (синей) отводится по одному байту (8 битов). Яркость каждой составляющей выражается числом от 0 до 255, и любой цвет из 16,5 миллионов компьютер может воспроизвести по трем кодам. В этом случае цветовая палитра не нужна, поскольку в трех байтах и так достаточно информации о цвете конкретного пикселя.

Сложнее обстоит дело, когда изображение имеет только 256 цветов, кодируемых одним байтом. В этом случае каждый цветовой оттенок представлен одним числом, причем это число выражает не цвет пикселя, а индекс цвета (его номер). Сам же цвет разыскивается по этому номеру в сопроводительной цветовой палитре, приложенной к файлу. Такие цветовые палитры называют индексными палитрами. Разные изображения могут иметь разные цветовые палитры.

В тех случаях, когда цвет изображения закодирован двумя байтами (режим High Color), на экране возможно изображение 65 тысяч цветов. В таком изображении каждый двухбайтный код тоже выражает какой-то цвет из общего спектра. Но в данном случае нельзя приложить к файлу индексную палитру, в которой было бы записано, какой код какому цвету соответствует, поскольку в этой таблице было бы 65 тысяч записей, и ее размер составил бы сотни тысяч байтов. Нет смысла прикладывать к файлу таблицу, которая может быть по размеру больше самого файла. В этом случае используют понятие фиксированной палитры. Ее не надо прикладывать к файлу, поскольку в любом графическом файле, имеющем шестнад-

180

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]