СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до 08.06.2025

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Кодирование изображений. Растровая и векторная графика

Категория: Информатика

Нажмите, чтобы узнать подробности

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

Просмотр содержимого документа
«Кодирование изображений. Растровая и векторная графика»

Кодирование изображений. Растровая и векторная графика


ПОНЯТЬ


Многие задачи, которые сегодня решают люди с помощью компьютера, так или иначе связано с хранением, передачей и обработкой изображений. Рисунки, фотографии, трёхмерные изображения, анимационные и видеофильмы – всё это стало привычным на экране дисплея. Кажется, что так было чуть ли не всегда. На самом деле возможность работы с графикой появилась тогда, когда на смену алфавитно-цифровым пришли графические дисплеи. Было это в 80-х годах ХХ века, то есть около четверти века назад. До этого простейшие изображения можно было создать лишь с помощью псевдографики: в таблицах кодировки некоторым кодам ставили в соответствие простейшие линии: ┌ ┐└ ┘├ ┤┬ ┴ ┼╔ ╠ ╦ ╬ и т.п., из которых и составлялись таблицы и простейшие схемы.

Экраны алфавитно-цифровых дисплеев были разбиты на отдельные знакоместа, в каждом их которых можно было отобразить один из символов, определённых в таблице кодировки. Всего таких знакомест было обычно 80х25.

Экраны графических дисплеев состоят из множества точек (пикселей), каждая из которых может светиться одним из возможных цветов. Число таких точек задаётся разрешением экрана. Первые графические дисплеи имели разрешение 640х480 точек. Разрешение современных дисплеев 1200х1024, 1600х1200 и выше. Все изображения, выводящиеся на экран, строятся из этих светящихся разными цветами точек.

Пример

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


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

Такой способ представления изображений называется матричным кодированием.

Пример

Изображение голубя при его шестикратном увеличении



Чем мельче точки и чем больше их количество, тем точнее можно передать рисунок.

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

Модель цветообразования была выбрана по аналогии с тем, как различает цвета глаз человека.

Колбочки, составляющие сетчатку глаза, воспринимают только три цвета – красный, зеленый, синий. Яркость каждого из этих цветов может быть различна. Различные комбинации цветов вместе с их яркостью и передают все воспринимаемые оттенки цвета. Если яркость всех цветов максимальна, то в итоге получается белый цвет, если яркость всех цветов минимальна (нет цвета), то получается черный цвет.

Каждый пиксель на экране дисплея состоит из трех люминофоров, каждый из которых может с заданной степенью яркости светить красным, зелёным или синим цветом. По первым буквам английских названий – Red, Green, Blue – эта модель получила название RGB-модель цветообразования. Яркость для каждого цвета задаётся двоичным кодом.

Пример

Пусть для кодирования цвета каждой точки изображения используется 1 байт или 8 бит. Если яркость зеленого цвета кодируется двумя битами – всего можно передать 4 уровня яркости: 00 – нет зелёного цвета, 01 и 10 – средние уровни яркости, 11 – максимальный уровень яркости. Уровни яркости красного и синего цветов кодируется 3 битами – всего можно передать 8 уровней (000, 001, 010, 011, 100, 101, 110, 111).

Таким образом при 8-битном двоичном кодировании можно передать 488 = 28 = 256 оттенков цвета.

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

Если каждый пиксель изображения кодируется всего 1 битом, то можно закодировать всего 2 состояния: 0 – нет цвета, 1 – есть цвет. Такое кодирование используется для хранения монохромных изображений.

В настоящее время для кодирования каждого из трёх основных цветов чаще отводится по одному байту, то есть используется глубина цвета 24 бита.

Пример

В таблице представлены двоичные коды некоторых оттенков.

Название цвета

Красный

Зелёный

Синий

Черный

0000 0000

0000 0000

0000 0000

Фиолетовый

0101 0101

0000 0000

1010 1010

Серый

1000 0000

1000 0000

1000 0000

Красный

1111 1111

0000 0000

0000 0000

Жёлтый

1111 1111

1111 1111

0000 0000

Белый

1111 1111

1111 1111

1111 1111


Всего при этом можно передать по 28 = 256 оттенков яркости каждого из основных цветов и 224 = 16 777 216 всех возможных оттенков. (И это при том, что даже тренированный глаз художника различает всего около 40 000 оттенков). Такое кодирование называется True Color (истинный цвет).

Пример

Голубь на рисунке состоит из 48х50 = 2400 пикселей. При 24-битном кодировании (1 пиксель – 3 байта) этот рисунок будет занимать 2400х3 = 7200 байт ≈ 7 Кбайт.

Экран с разрешением 1200х1024 пикселей при 24-битном кодировании требует 1200х1024х3 ≈ 3,5 Мбайт.

При выводе изображений на принтере используется иная модель цветопередачи, а именно, CMYK-модель (от Cyan – голубой, Magenta – пурпурный, Yellow – желтый и blacK – чёрный). Именно смешение чернил данных цветов позволяет получить многоцветные распечатки.

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

Второй основной способ кодирования называется векторным. Его идея взята из математики и связана с использованием системы координат и графиков функций.

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

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

Пример

Изображение, представленное на рисунке состоит из круга радиуса 20 с центром координат в точке (30,30), прямоугольника, координаты противоположных вершин которого (10,10) и (50,50) и прямых линий, координаты концов которых легко определить.

Кратко данное изображение можно описать так:

Окружность (30, 30), 20

Прямоугольник (10, 10) – (50, 50)

Линия (10, 30) – (30, 10)

Линия (30, 10) – (50, 30)

Линия (50, 30) – (30, 50)

Линия (30, 50) – (10, 30)

Сохранение этого описания потребует значительно меньше места, чем если бы рисунок был закодирован матричным способом.

Если ввести числовые обозначения для графических примитивов (окружность, прямоугольник, линия и т.п.), то рисунок можно закодировать всего 29 числами. Если под каждое число отвести 2 байта, то всего потребуется 58 байт памяти.

Если бы рисунок сохранялся в матричном коде, то даже монохромный он занимал бы 50х50/8 = 313 байт, то есть в пять раз больше. В случае цветного изображения это соотношение было бы еще больше.

Система координат в примере соответствует системе координат экрана дисплея: начало координат располагается в верхнем левом углу.

Заметим, что большинство языков программирования поддерживает именно такой способ кодирования изображений.

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

Так, графический редактор Paint поддерживает матричную (иногда говорят растровую) графику и работает с изображениями в формате *.bmp (Windows device independent bitmap – побитная карта). Это очень «неэкономный» формат, но зато при выводе на экран не требует никаких дополнительных преобразований, а потому рисунки выводятся практически мгновенно. Этот формат часто используется для хранения логотипов, экранных заставок, пиктограмм и прочих элементов графического оформления программ.

Графический редактор (вернее графический процессор) Photoshop также поддерживает матричное кодирование. Его основной формат *.psd (Adobe Photoshop), позволяющий работать с многослойными изображениями.

Самым популярным форматом для хранения фотографических изображений является *.jpeg (Joint Photographic Experts Group). Это один из самых «экономных» форматов за счет особых методов сжатия, а потому, наряду с форматами *.gif (Graphic Interchange Format) и *.png (Portable Network Graphics) широко используется для хранения изображений в Интернет.

В издательских системах, требующих изображения наилучшего качества, распространен формат *.tiff (Tag Image File Format).

Наиболее известными векторными графическими форматами являются *.ai (Adobe Illustrator Document), применяемый в профессиональном графическом редакторе Adobe Illustrator и *.cdr (CorelDRAW Document) популярного редактора векторной графики CorelDRAW. Наряду с ними распространены также форматы *.wmf (Windows Metafile) *.pdf (Portable Document Format). Последний наиболее удобен для хранения смешанных документов, содержащих как графику, так и текст с различными шрифтами. Для создания технической документации (схем, чертежей) также используются редакторы, поддерживающие векторную графику. Например, AutoCAD поддерживает формат *.aca.


ЗНАТЬ


Существует два основных способа кодирования изображений: матричный (растровый) и векторный. Соответственно говорят о матричной и векторной графике.

В растровых изображениях картинка складывается наподобие мозаики из отдельных точек (пикселей), каждая из которых определяется своим положением (координатами) и цветом.

Достоинства матричного кодирования изображений: способность передать тончайшие нюансы и широкие возможности редактирования, вплоть до отдельного пикселя.

Недостатки матричного способа кодирования изображений: большие размеры файлов и/или необходимость использования специальных методов сжатия.

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

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

Недостатки векторного кодирования изображений: трудоёмкость создания и редактирования сложных элементов изображения, возможность искажений при выводе изображений на принтере.

Для передачи оттенков цвета используются обычно RGB-модель цветопередачи для дисплеев и сканеров и CMYK-модель цветообразования для принтеров.

В RGB-модели оттенки получаются за счет наложения волн красного, зелёного и синего цветов. В CMYK-модели смешиваются голубой, пурпурный, желтый и чёрный цвета.

Количество бит, отводимых на кодирование цвета одного пикселя, называется глубиной цвета. Двоичный код цвета при этом задаёт уровень яркости (интенсивности) каждого из основных цветов.

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

Так, 256-цветный рисунок получается при 8-битной глубине цвета, а глубина цвета 24 бита позволяет передать 224 = 16777256 оттенков (режим истинного цвета True Color).


УМЕТЬ


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


Представьте монохромное изображение в виде двоичного кода. Сколько байт памяти займёт этот код?


Опишите изображение с позиций векторного способа кодирования


Определите, какое изображение закодировано в следующем описании изображения.

Прямоугольник (10, 10) – (90, 50)

Прямоугольник (10, 10) – (50, 90)

Окружность (30, 30), 20

Линия (90, 10) – (50, 50)

Линия (10, 90) – (50, 50)


Файл, содержащий рисунок, закодированный в матричной форме с 24-разрядным кодированием цвета занимает 48 Кбайт. Сколько килобайт займет этот же рисунок, если его сохранить как монохромный?


Если на компьютере установлен графический процессор Photoshop, то в окне Цвет можно, передвигая полозки, посмотреть коды (правда, не двоичные, а десятичные) любых оттенков. Определите, какому цвету соответствуют сочетание следующих кодов.

Коды цветов

Итоговый цвет

красного

зелёного

синего

0

0

255


100

200

0


200

0

100


128

250

128



7




Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!