| Представление изображений Все известные форматы представления изображений (как неподвижных,
так и движущихся) можно разделить на растровые и векторные. В векторном формате
изображение разделяется на примитивы -- прямые линии, многоугольники, окружности
и сегменты окружностей, параметрические кривые, залитые определенным цветом или
шаблоном, связные области, набранные определенным шрифтом отрывки текста и т.
д. (рис. 1.5). Для пересекающихся примитивов задается порядок, в котором один
из них перекрывает другой. Некоторые форматы, например, PostScript, позволяют
задавать собственные примитивы, аналогично тому, как в языках программирования
можно описывать подпрограммы. Такие форматы часто имеют переменные и условные
операторы и представляют собой полнофункциональный (хотя и специализированный)
язык программирования. 
Рис. 1.5. Двухмерное векторное изображение Каждый примитив описывается
своими геометрическими координатами. Точность описания в разных форматах различна,
нередко используются числа с плавающей точкой двойной точности или с фиксированной
точкой и точностью до 16-го двоичного знака. Координаты примитивов бывают
как двух-, так и трехмерными. Для трехмерных изображений, естественно, набор примитивов
расширяется, в него включаются и различные поверхности — сферы, эллипсоиды и их
сегменты, параметрические многообразия и др. (рис. 1.6). 
Рис. 1.6. Трехмерное векторное изображение Двухмерные векторные форматы
очень хороши для-представления чертежей, диаграмм, шрифтов (или, если угодно,
отдельных букв шрифта) и отформатированных текстов. Такие изображения удобно редактировать
— изображения и их отдельные элементы легко поддаются масштабированию и другим
преобразованиям. Примеры двухмерных векторных форматов — PostScript, PDF (Portable
Document Format, специализированное подмножество PostScript), WMF (Windows MetaFile),
PCL (Printer Control Language, система команд принтеров, поддерживаемая большинством
современных лазерных и струйных печатающих устройств). Примером векторного представления
движущихся изображений является MacroMedia Flash. Трехмерные векторные форматы
широко используются в системах автоматизированного проектирования и для генерации
фотореалистичных изображений методами трассировки лучей и т. д. Однако преобразование
реальной сцены (например, полученной оцифровкой видеоизображения или сканированием
фотографии) в векторный формат представляет собой сложную и, в общем случае, неразрешимую
задачу. Программы-векторизаторы существуют, но потребляют очень много ресурсов,
а качество изображения во многих случаях получается низким. Самое же главное —
создание фотореалистичных (фотографических или имитирующих фотографию) изображений
в векторном формате, хотя теоретически и, возможно, на практике требует большого
числа очень сложных примитивов. Гораздо более практичным для этих целей оказался
другой подход к оцифровке изображений, который использует большинство современных
устройств визуализации: растровые дисплеи и многие печатающие устройства.
В растровом формате изображение разбивается на прямоугольную матрицу элементов,
называемых пикселами (слегка искаженное
PICture ELement — этемент картинки). Матрица называется
растром. Для каждого пиксела определяется его яркость и, если изображение
цветное, цвет. Если, как это часто бывает при оцифровке реальных сцен или преобразовании
в растровый формат (растеризации) векторных изображений, в один пиксел попали
несколько элементов, их яркость и цвет усредняются с учетом занимаемой площади.
При оцифровке усреднение выполняется аналоговыми контурами аналого-цифрового преобразователя,
при растеризации — алгоритмами анти-алиасинга.
Размер матрицы называется разрешением растрового изображения.
Для печатающих устройств (и при растеризации изображений, предназначенных для
таких устройств) обычно задается неполный размер матрицы, соответствующей всему
печатному листу, а количество пикселов, приходящихся на вертикальный или горизонтальный
отрезок длиной 1 дюйм; соответствующая единица так и называется —
точки на дюйм (DPI, Dots Per Inch). Для черно-белой печати обычно достаточно
300 или 600 DPI. Однако принтеры, в отличие от растровых терминалов, не умеют
манипулировать яркостью отдельной точки, поэтому изменения яркости приходится
имитировать, разбивая изображение на квадратные участки и регулируя яркость относительным
количеством черных и белых (или цветных и белых при цветной печати) точек в этом
участке. Для получения таким способом приемлемого качества фотореалистичных изображений
300 DPI заведомо недостаточно, и даже бытовым принтерам приходится использовать
гораздо более высокие разрешения, вплоть до 2400 DPI. Вторым параметром растрового
изображения является разрядность одного пиксела, которую называют
цветовой глубиной. Для черно-белых изображений достаточно одного бита на
пиксел, для градаций яркости серого или цветовых составляющих изображения необходимо
несколько битов (рис. 1.7). В цветных изображениях пиксел разбивается на три или
четыре составляющие, соответствующие разным цветам спектра. В промежуточных данных,
используемых при оцифровке и редактировании растровых изображений, цветовая глубина
достигает 48 или 64 бит (16 бит на цветовую составляющую). Яркостный диапазон
современных Мониторов, впрочем, позволяет ограничиться 8-ю битами, т. е. 256 градациями,
на одну цветовую составляющую: большее количество градаций просто незаметно глазу. 
Рис. 1.7. Растровое изображение Наиболее широко используемые цветовые модели
— это RGB (Red, Green, Blue — красный, зеленый, синий, соответствующие максимумам
частотной характеристики светочувствительных пигментов человеческого глаза), CMY
(Cyan, Magenta, Yellow — голубой, пурпурный, желтый, дополнительные к RGB) и CMYG
— те же цвета, но с добавлением градаций серого. Цветовая модель RGB используется
в цветных кинескопах и видеоадаптерах, CMYG — в цветной полиграфии. В различных
графических форматах используется разный способ хранения пикселов. Два основных
подхода — хранить числа, соответствующие пикселам, одно за другим, или разбивать
изображение на битовые плоскости -сначала хранятся младшие биты всех пикселов,
потом — вторые и так далее. Обычно растровое изображение снабжается заголовком,
в котором указано его разрешение, глубина пиксела и, нередко, используемая цветовая
модель. |