курсовая. 1-я_лекция. Если заглянуть в историю, то можно проследить, как с момента появления первых эвм люди стремятся разнообразить способы общения человека и машины, приблизившись к уровню общения человека с человеком
Скачать 59.47 Kb.
|
Введение Если заглянуть в историю, то можно проследить, как с момента появления первых ЭВМ люди стремятся разнообразить способы общения человека и машины, приблизившись к уровню общения человека с человеком. Это общение было бы гораздо более ограниченным, если бы не использовало один из наиболее простых способов — язык изображений, образов. Сегодня графические изображения на экране монитора современного персонального компьютера стали для нас нормой, совершенно неотъемлемым атрибутом интерфейса. Спектр применения компьютерной графики, помимо средства интерфейса «человек-машина», чрезвычайно широк: от создания рекламных роликов, компьютерных мультфильмов и игр, кроя одежды, малых и монументальных форм дизайна, компьютерной живописи до визуализации результатов научных изысканий Можно с уверенностью сказать, что популярность Internet, и в частности WWW, во многом объясняется широким применением графики. Рынок программного и аппаратного обеспечения компьютерной графики – один из самых динамичных. Об этом можно судить по объему литературы и числу сервисов Internet, посвященных так или иначе компьютерной графике. Предметом данной работы является обширная область компьютерных наук, посвященная представлению данных в памяти ЭВМ в графической форме. Это самое общее определение, так как под данными можно понимать как непосредственно хранящееся в виде файла изображение в одном из графических форматов, так и протокол обмена командами между пользователем и ЭВМ (то, что мы называем графическим интерфейсом), и битовую последовательность, сформированную для вывода на экран или печатающее устройство. Методы и способы представления и манипуляции этим видом данных относятся к компетенции компьютерной графики. В работе рассматриваются различные способы представления изображений в памяти ЭВМ, методы и алгоритмы растеризации и обработки растровых изображений, матричные преобразования на плоскости и в пространстве, методы и алгоритмы удаления скрытых линий и поверхностей. Кроме того, приводятся основы использования графической библиотеки OpenGL, а также описываются базовые аппаратные средства, используемые при работе с изображениями. Программный код, приведенный в пособии, создан в MS Visual Studio на языке C#. Компьютерная (машинная) графика – область деятельности, изучающая создание, способы хранения и обработки изображений с помощью ЭВМ. Под интерактивной компьютерной графикой понимают раздел компьютерной графики, изучающий вопросы динамического управления со стороны пользователя содержанием изображения, его формой, размерами и цветом на экране с помощью интерактивных устройств взаимодействия. Кроме интерактивной в компьютерной графике выделяют разделы, изучающие методы работы с изображением на плоскости, так называемую 2D графику, и трехмерную (3D) графику. Трехмерное изображение отличается от двухмерного, тем, что строится исходя из математического описания некоторой трехмерной сцены. Математическое описание сцены чаще всего является моделью физических объектов в трехмерном пространстве. Таким образом, для получения трехмерного изображения требуется построить математическую модель сцены и объектов на ней, а далее визуализировать путем получения проекции с учетом освещения материалов и пр. В результате визуализации мы получим изображение на плоскости экрана или на выходе принтера. Растровое представление изображений Что такое растровое изображение? Возьмѐм фотографию. Конечно, она тоже состоит из маленьких элементов, но будем считать, что отдельные элементы мы рассмотреть не можем. Она представляется для нас, как реальная картина природы. Теперь наложим на изображение прямоугольную сетку. Таким образом, разобьем изображение на прямоугольные элементы. Каждый прямоугольник закрасим цветом, преобладающим в нѐм (на самом деле программы при оцифровке генерируют некий «средний» цвет, т. е. если у нас была одна чѐрная точка и одна белая, то прямоугольник будет иметь серый цвет). Изображение стало состоять из конечного числа прямоугольников определѐнного цвета. Эти прямоугольники называют pixel (от PIX ELement) – пиксел или пиксель. Итак, под растровым (bitmap, raster) понимают способ представления изображения в виде совокупности отдельных точек (пикселей) различных цветов или оттенков. Это наиболее простой способ представления изображения, ибо таким образом видит наш глаз. Достоинством такого способа является возможность получения фотореалистичного изображения высокого качества в различном цветовом диапазоне. Высокая точность и широкий цветовой диапазон требуют увеличения объема файла для хранения изображения и оперативной памяти для его обработки, что можно отнести к недостаткам. Вторым существенным недостатком является потеря качества изображения при его масштабировании. Параметры растровых изображений Как уже говорилось ранее, растровое изображение представляется в памяти ЭВМ в виде матрицы отдельных пикселей. В этой связи возникает вопрос о том, каково должно быть число этих пикселей и какое число бит отводится для хранения одного пикселя, т. е. каковы основные параметры растрового изображения – разрешение и глубина цвета. Разрешение (resolution) — это степень детализации изображения, число пикселей (точек), отводимых на единицу площади. Поэтому имеет смысл говорить о разрешении изображения только применительно к какому-либо устройству ввода или вывода изображения. Например, пока имеется обычная фотография на твердом носителе, нельзя сказать о ее разрешении. Но как только мы попытаемся ввести эту фотографию в компьютер через сканер, нам необходимо будет определить разрешение оригинала, т. е. указать количество точек, считываемых сканером с одного квадратного дюйма. Поскольку изображение можно рассматривать применительно к различным устройствам, то следует различать: разрешение оригинала; разрешение экранного изображения; разрешение печатного изображения. Разрешение оригинала. Разрешение оригинала определяется при вводе изображения в компьютер и измеряется в точках на дюйм (dots per inch - dpi). При этом количество dpi определяет не число точек в квадратном дюйме, а количество точек на одной его стороне. Например, 300 dpi означает, что в квадратный дюйм изображения покрывается растровой сеткой 300x300 и после сканирования, изображение соответствующее, квадратному дюйму будет состоять из 90 000 пикселей. В дальнейшем разрешение оригинала влияет на разрешение изображений выводимых на разных устройствах (принтерах, экранах мониторов). Установка разрешения оригинала зависит от требований, предъявляемых к качеству изображения и размеру файла. В общем случае действует правило: чем выше требования к качеству, тем выше должно быть разрешение оригинала. Для получения на экране изображения близкого к размеру оригинала обычно использует разрешения 72-75 dpi. Для вывода изображения в дальнейшем на печать и распознавания текста рекомендуется устанавливать разрешении 300-600 dpi. Если исходное изображение небольшого размера и его планируется увеличить и вывести на печать, то в этом случае разрешение оригинала лучше устанавливать 600-1200 dpi. Сканирование слайдов, негативных фотопленок и качественных материалов для полиграфии требует установки величины разрешения 1200 и более dpi. Разрешение экранного изображения. Для экранных копий изображения элементарную точку растра принято называть пикселем (pixel). Для измерения разрешения экранного изображения, кроме dpi, используют единица измерения ppi (pixel per inch). Размер пикселя, а значит и разрешение экранного изображения, варьируется в зависимости от выбранного разрешения экрана (из диапазона стандартных значений), разрешения оригинала и масштаба отображения. Разрешение печатного изображения и понятие линиатуры. Большинство находящихся в обращении печатающих устройств, от офсетных печатающих машин до простейших струйных принтеров, используют принципы полутонового растрирования. Полутоновое растрирование (halftoning) – это способ имитации оттенков отдельными точками краски или тонера. Этот процесс основан на том, что печатающее устройство наносит на бумагу точки краски или тонера и располагает их в узлах регулярной прямоугольной сетки, которую иногда называют физическим растром. Будем называть такие точки печатными точками. Соседние точки физической сетки печатающего устройства объединяются в прямоугольники, которые называются полутоновыми ячейками (halftone cells). Из полутоновых ячеек образуется еще одна сетка, именуемая линейным растром (line screen). Линейный растр – это просто способ логической организации физического растра (рис. 1.3). Частота линейного растра или количество полутоновых ячеек на единицу длины называется линиатурой и измеряется в линиях на дюйм (line per inch, lpi). Следующим параметром растрового изображения, который следует рассмотреть, является глубина цвета. Глубина цвета (color depth) — это число бит, используемых для представления каждого пикселя изображения. С развитием вычислительных средств глубина цвета, хранимых в компьютере, изображений все время возрастала. Одним из первых распространенных стандартов мониторов являлся VGA, который поддерживал глубину цвета 8 бит для цветных изображений. Следующим шагом стало введение в компьютерах системы Macintosh стандарта HighColor, который кодировал цвет с глубиной 16 бит, что позволяло получить 65536 цветов. Сейчас наиболее используемым является 24-битный TrueColor, позволяющий кодировать около 16,7 млн. цветов. Однако необходимо отметить, что существуют графические системы, использующие глубину цвета более чем 24 бита на пиксель. Для лучшего понимания, что такое разрешение и глубина цвета, приведем простой пример. Вы решили отсканировать Вашу фотографию размером 10 х 15 см. чтобы затем обработать и распечатать на цветном принтере. Для получения приемлемого качества печати необходимо разрешение не менее 300 dpi. Считаем: 10 см = 3,9 дюйма; 15 см = 5,9 дюймов. По вертикали: 3,9 * 300 = 1170 точек. По горизонтали: 5,9 * 300 = 1770 точек. Итак, число пикселей растровой матрицы 1170 * 1770 = 2 070 900. Теперь решим, сколько цветов мы хотим использовать. Для черно-белого изображения используют обычно 256 градаций серого цвета для каждого пикселя, или 1 байт. Получаем, что для хранения нашего изображения надо 2 070 900 байт или 1,97 Мб. Для получения качественного цветного изображения надо не менее 256 оттенков для каждого базового цвета. В модели RGB соответственно их 3: красный, зеленый и синий. Получаем общее количество байт – 3 на каждый пиксель. Соответственно, размер хранимого изображения возрастает в три раза и составляет 5,92 Мб. Для создания макета для полиграфии фотографии сканируют с разрешением 600 dpi, следовательно, размер файла вырастает еще вчетверо. Задание: зная, что размер экрана в пикселях 800 х 600, а разрешение 72 ppi, установить реальные размеры экрана в сантиметрах. Векторное представление изображений Для векторной графики характерно разбиение изображения на ряд графических примитивов – точки, прямые, ломаные, дуги, полигоны. Таким образом, появляется возможность хранить не все точки изображения, а координаты узлов примитивов и их свойства (цвет, связь с другими узлами и т. д.). по сравнению с растровым, являются: векторное изображение может быть легко масштабировано без потери качества, так как это требует пересчета сравнительно небольшого числа координат узлов; графические файлы, в которых хранятся векторные изображения, имеют существенно меньший, по сравнению с растровыми, объем (порядка нескольких килобайт). На самом деле размер векторного изображения зависит от количества объектов на изображении. И чем ближе качество векторного рисунка будет приближаться к фотореалистичному изображению, тем большей размер будет у файла. Сферы применения векторной графики очень широки. В полиграфике – от создания красочных иллюстраций до работы со шрифтами. Все, что мы называем машинной графикой, 3D-графикой, графическими средствами компьютерного моделирования и САПР – все это сферы приоритета векторной графики, ибо эти ветви дерева компьютерных наук рассматривают изображение исключительно с позиции его математического представления. Как видно, векторным можно назвать только способ описания изображения, а само изображение для нашего глаза всегда растровое. Таким образом, задачами векторного графического редактора являются растровая прорисовка графических примитивов и предоставление пользователю сервиса по изменению параметров этих примитивов. Все изображение представляет собой базу данных примитивов и параметров макета (размеры холста, единицы измерения и т. д.). Представление цвета в компьютере Свет и цвет Понятия света и цвета в компьютерной графике тесно связаны и являются основополагающими. Свет может рассматриваться либо как электромагнитная волна, либо как поток фотонов. Одной из характеристик электромагнитной волны является ее длинна λ. Видимый свет имеет длину волн в диапазоне 400-700 нм. Свет принимается либо непосредственно от источника, например, от экрана монитора, либо косвенно при отражении от поверхности объекта или преломлении в нем. На практике мы редко сталкиваемся со светом какой то определенной длинны волны. Напротив, видимый свет практически всегда состоит из сочетания фотонов разных длин волн. Источник или объект является ахроматическим, если наблюдаемый свет содержит все видимые длины волн в приблизительно равных количествах. Ахроматический источник кажется белым, а отраженный или преломленный ахроматический свет — белым, черным или серым. Белыми выглядят объекты, ахроматически отражающие более 80% света белого источника, а черными — менее 3%. Промежуточные значения дают различные оттенки серого. 25 Если воспринимаемый свет содержит длины волн в произвольных неравных количествах, то он называется хроматическим. Монохроматический - это такой свет, который имеет одну длину волны или частоту. Понятие цвета тесно связано с тем, как человек воспринимает свет. Можно сказать, что ощущение цвета формируется человеческим мозгом в результате анализа электромагнитного излучения (света), попадающего на сетчатку глаз. Считается, что в глазе человека существует три группы цветовых рецепторов (колбочек), каждая из которых чувствительна к определенному диапазону длин волны. Каждая группа формирует один из трех основных цветов: красный, зеленый, синий. Если длины волн светового потока сконцентрированы у верхнего края видимого спектра (около 700 Нм), то свет воспринимается как красный. Если длины волн сконцентрированы у нижнего края видимого спектра (около 400 Нм), то свет воспринимается как синий. Если длины волн сконцентрированы в середине видимого спектра (около 550 Нм), то свет воспринимается как зеленый. С помощью экспериментов, построенных на этой гипотезе, были получены кривые реакции глаза, показанные на рис. 2.1. При описании цвета используют три его субъективных атрибута: цветовой тон, насыщенность и светлоту. Разделение признака цвета на эти взаимосвязанные компоненты есть результат мысленного процесса, существенно зависящего от навыка и обучения. Наиболее важный атрибут цвета – цветовой тон (hue) – ассоциируется в человеческом сознании с обусловленностью окраски предмета определенным типом пигмента, краски, красителя. Тон определяется характером распределения излучения в спектре видимого света. Именно тон определяет название цвета, например «красный», «синий», «зелѐный». Насыщенность (saturation) характеризует степень, уровень, силу выражения цветового тона. Этот атрибут в человеческом сознании связан с количеством (концентрацией) пигмента, краски, красителя. Можно сказать, что насыщенность цвета показывает, насколько данный цвет отличается от монохроматического («чистого») излучения того же светового тона. Насыщенность характеризует степень ослабления (разбавления) данного цвета белым и позволяет отличать розовый от красного, голубой от синего. Считается, что серые тона (ахроматические) не имеют насыщенности и различаются лишь по светлоте. Светлота (lightness, value) – это различимость участков, сильнее или слабее отражающих свет. Уровень светлоты окрашенных объектов определяется при сравнении их с ахроматическими объектами и при выявлении степени их приближения к белому цвету, отражающему максимум света. Со светлотой тесно связано физическое понятие яркости света (luminance). Чем больше яркость, тем больше светлота. Поэтому можно сказать, что светлота есть мера ощущения яркости. С другой стороны, во многих источниках, вместо понятия светлота часто используют субъективное понятие яркости (brightness). Цветовые модели и пространства Как видим из вышеизложенного, описание цвета может опираться на составление любого цвета на основе основных цветов или на такие понятия, как светлота, насыщенность, цветовой тон. Применительно к компьютерной графике описание цвета также должно учитывать специфику аппаратуры для ввода/вывода изображений. В связи с необходимостью описания различных физических процессов воспроизведения цвета были разработаны различные цветовые модели. Цветовые модели позволяют с помощью математического аппарата описать определенные цветовые области спектра. Цветовые модели описывают цветовые оттенки с помощью смешивания нескольких основных цветов. Основные цвета разбиваются на оттенки по яркости (от темного к светлому), и каждой градации яркости присваивается цифровое значение (например, самой темной – 0, самой светлой – 255). Считается, что в среднем человек способен воспринимать около 256 оттенков одного цвета. Таким образом, любой цвет можно разложить на оттенки основных цветов и обозначить его набором цифр – цветовых координат. Таким образом, при выборе цветовой модели можно определять обычно трехмерное цветовое координатное пространство, внутри которого каждый цвет представляется точкой. Такое пространство называется пространством цветовой модели. Профессиональные графические программы обычно позволяют оперировать с несколькими цветовыми моделями, большинство из которых создано для специальных целей или особых типов красок: CMY, CMYK, CMYK256, RGB, HSB, HLS, L*a*b, YIQ, Grayscale (Оттенки серого) и Registration color Цветовая модель RGB В основе одной из наиболее распространенных цветовых моделей, называемой RGB моделью, лежит воспроизведение любого цвета путем сложения трех основных цветов: красного (Red), зеленого (Green) и синего (Blue). Каждый канал - R, G или B имеется свой отдельный параметр, указывающий на количество соответствующей компоненты в конечном цвете. Например: (255, 64, 23) – цвет, содержащий сильный красный компонент, немного зелѐного и совсем немного синего. Естественно, что этот режим наиболее подходит для передачи богатства красок окружающей природы. Но он требует и больших расходов, так как глубина цвета тут наибольшая – 3 канала по 8 бит на каждый, что дает в общей сложности 24 бита. Поскольку в RGB модели происходит сложение цветов, то она называется аддитивной (additive). Именно на такой модели построено воспроизведение цвета современными мониторами. Значения координат R, G и B можно считать принадлежащими отрезку [0,1], что представляет пространство RGB в виде единичного куба (рис. 2.2). Субтрактивные цветовые модели Модель CMY использует также три основных цвета: Cyan (голубой), Magenta (пурпурный, или малиновый) и Yellow (желтый). Эти цвета описывают отраженный от белой бумаги свет трех основных цветов RGB модели. Поэтому можно описать соотношения между RGB и CMY моделями следующим образом: Цвета получаются вычитанием из белого основных цветов Модель CMY является субтрактивной (основанной на вычитании) цветовой моделью. Как уже говорилось, в CMY-модели описываются цвета на белом носителе, т. е. краситель, нанесенный на белую бумагу, вычитает часть спектра из падающего белого света. Например, на поверхность бумаги нанесли голубой (Cyan) краситель. Теперь красный свет, падающий на бумагу, полностью поглощается. Таким образом, голубой носитель вычитает красный свет из падающего белого. Такая модель наиболее точно описывает цвета при выводе изображения на печать, т. е. в полиграфии. Поскольку для воспроизведения черного цвета требуется нанесение трех красителей, а расходные материалы дороги, использование CMY- модели является не эффективным. Поэтому к базовым трем цветам CMY-модели добавляют черный (blacK) и получают новую цветовую модель CMYK. |