ВОПРОСЫ ОРГАНИЗАЦИИ, ХРАНЕНИЯ И ОБРАБОТКИ КАРТОГРАФИЧЕСКОЙ ИНФОРМАЦИИ

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

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

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

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

Векторная форма — это такая форма представления, в которой информация о местоположении объектов, их очертаниях дается в виде структурированного набора координат точек объекта.

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

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

Для кодирования черно-белых изображений достаточно двух цифр, а т. к. из курса « Информатика» известно, что в компьютере применяется двоичная система счисления, то кодирование чернобелых монохромных изображений не представляет большой трудности.

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

а) б) в)

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

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

Крест можно разбить на девять равных частей, каждая из которых будет иметь однородный цвет — черный или белый. Обозначим черный цвет единицей, а белый — нулем. Запишем все получившиеся цифры, начиная с левой части верхнего ряда (рис. 8, б). Мы получили матрицу:

  • 010
  • 111
  • 010

Это и есть компьютерный код нашего рисунка. Однако из этого кода неясно, какого размера должна быть каждая часть рисунка. Поэтому договоримся, что разделим рисунок на небольшие части заданного размера (элементарные квадратики). Теперь частей стало значительно больше (рис. 9, в), и компьютерный код стал длиннее

  • 000011110000
  • 000011110000
  • 000011110000

ит. д.

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

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

Части, на которые разбиваются изображения, называют пикселями (от англ.-Picture Element — элемент изображения). Пиксели часто называют точками, т. к. они очень малы. Рисунок из множества пикселей можно сравнить с мозаикой, когда из большого количества разноцветных камешков собирается произвольная картина. Если через увеличительное стекло рассмотреть изображение на экране телевизора или часть газетной иллюстрации, то можно увидеть растр — мелкие точки и пятнышки разной величины и цвета. Так и для моделирования изображения в компьютере оно раскладывается на множество точек, расположенных рядами и столбцами, в своего рода «мозаику», причем координата каждого элемента этой мозаики известна — это номер строки и (или) столбца в матрице чисел.

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

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

Пока говорилось, что пиксель — маленькая часть рисунка. А каков размер пикселя? Не определив размер пикселя, невозможно построить изображение на основе закодированных данных. Если же мы зададим размер, то без проблем восстановим закодированный рисунок. Однако на практике не используют размер пикселей, а задают две другие величины: размер рисунка и его разрешение. Размер описывает физические габариты изображения, т. е. его высоту и ширину.

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

Например, размер рисунка компьютера равен 32 на 32 пикселя. При отображении на мониторе и последующей печати на принтере каждый пиксель представляется отдельной точкой, если оборудование не делает специальных преобразований. На старых мониторах с крупным зерном экрана монитора, рисунок получится большим, а на современном принтере, в котором используются мельчайшие точки, рисунок получится очень маленьким. А каким он должен быть на самом деле? Для этого задается разрешение изображения. Разрешение — это плотность размещения пикселей, формирующих изображение, т. е. количество пикселей на заданном отрезке. Чаще всего разрешение измеряется в количестве точек на дюйм — dpi (Dots Per Inch). Например, если мы укажем, что наш рисунок на компьютере имеет разрешение 72 dpi, это означает, что на каждом дюй ме может разместиться семьдесят два пикселя. При отображении рисунков на мониторе используют разрешение от 72 dpi до 120 dpi, т. е. чем выше степень разрешения (72 dpi, 120 dpi, 200 dpi и т. д.), тем меньше размер растровой точки и, соответственно, тем выше качество передачи изображения. При печати самым распространенным разрешением является 300 dpi, но для получения высококачественных отпечатков на современных цветных принтерах и плоттерах можно использовать и большее разрешение.

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

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

Как уже отмечалось, чтобы получить в рисунке естественные цвета, следует использовать для кодирования каждого цвета четыре байта. Современные цветные принтеры и плоттеры печатают изображения с разрешение до 2000 dpi. Для представления с таким разрешением и глубиной цвета изображения формата А4 (обычный лист бумаги), потребуется памяти около 765 мегабайт (Mb). Даже для современных компьютеров это много. Но рисунки размерами по 50 мегабайт обрабатываются без особенных затруднений. Аэрофотоснимок размером 10 х 15см и глубиной цвета 24 бита может занять 395 килобайт (КЬ) если используется разрешение 75 dpi, или более 35 мегабайт (Mb), при использовании разрешения 720 dpi.

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

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

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

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

Если попытаться представить, как будет выглядеть отрезок прямой наклонной линии в векторном и растровом форматах, то мы увидим, что положение отрезка и его направление относительно некоторой системы координат (рис. 9, а) можно задать вектором, т. е. координатами начала и конца отрезка (X1Y1; X2Y2). Для растровой картинки в памяти компьютера необходимо поместить следующий двоичный код (рис. 9, б):

0001 ООН ОНО 1100

Рис. 9

Уменьшая размер пикселя, мы неизбежно увеличиваем объем информации, которая будет храниться в памяти компьютера (рис. 10, в):

  • 000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000100
  • — первая строка матрицы:
    • 000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000011000
  • — вторая строка матрицы и т. д.

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

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

Растр применяется в основном там, где графическая информация представлена в виде картинки или фотографии, а также в качестве

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

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

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >