Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции комп мод.doc
Скачиваний:
23
Добавлен:
23.08.2019
Размер:
3.01 Mб
Скачать

Глава 4. Общие понятия о графическом моделировании и геоинформационных системах

§ 14. Способы представления и принципы обработки графических данных на персональных эвм

14.1. Представление в компьютере графической информации. Растровая и векторная графика

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

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

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

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

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

Рис. 33. Кодирование рисунка

Крест можно разбить на девять равных частей, каждая из которых будет иметь однородный цвет - черный или белый. Обозначим черный цвет единицей, а белый - нулем (рис. 33, в центре). Запишем все получившиеся цифры, начиная с левой части верхнего ряда. Мы получили число 010111010. Это и есть компьютерный код нашего рисунка. Однако из этого кода неясно, какого размера должна быть каждая часть рисунка. Поэтому договоримся, что разделим рисунок на небольшие части заданного размера (рис. 33, справа). Теперь частей стало значительно больше, и компьютерный код стал длиннее - 000011110000000011110000 - и так далее. Зато любой компьютер, получив этот код и зная, что каждая цифра означает цвет небольшого элемента изображения заданного размера, легко восстановит рисунок.

Закодированные подобным образом рисунки называются растровыми изображениями, растрами или битмапами, от английского слова bitmap - набор бит. Части, на которые разбиваются изображения, называют пикселями (PICture ELement - элемент рисунка), или точками.

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

Объем информации, описывающий цвет пикселя, определяет глубину цвета. Чем больше информации определяет цвет каждой точки в рисунке, тем больше вариантов цвета существует. Понятно, что для рисунков в естественном цвете требуется больший объем памяти. Чтобы представить более шестнадцати миллионов цветов, информация о каждой точке рисунка должна занимать 4 байта.

Кодирование растрового изображения предполагает знание размеров элемента изображения. На практике же параметры изображения определяют его размером и разрешением.

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

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

Разрешение - это плотность размещения пикселей, формирующих изображение, то есть количество пикселей на заданном отрезке. Чаще всего разрешение измеряется в количестве точек на дюйм - dpi (Dot Per Inch).

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

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

  • растровые изображения занимают много места в памяти и на диске.

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

Чтобы нарисовать более сложный рисунок, применяют несколько простых фигур. Любое изображение в векторном формате состоит из множества составляющих частей, которые можно редактировать независимо друг от друга. Эти части называются объектами. Так как с помощью комбинации нескольких объектов можно создавать новый объект, объекты могут иметь достаточно сложный вид, Размеры, кривизна и местоположение для каждого объекта хранятся в виде числовых коэффициентов. Благодаря этому появляется возможность масштабировать изображения с помощью простых математических операций, в частности, простым умножением параметров графических элементов на коэффициент масштабирования. При этом качество изображения остается без изменений.

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

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