
- •Введение
- •1. Машинная графика и обработка изображения с помощью эвм
- •2. Типы графических устройств
- •2.1. Графические дисплеи на запоминающей трубке
- •2.2. Векторные графические дисплеи с регенерацией изображения
- •2.3. Растровые графические дисплеи с регенерацией изображения
- •2.4. Диалоговые устройства
- •3. Основы растровой графики
- •3.1. Алгоритмы вычерчивания отрезков
- •3.2. Цифровой дифференциальный анализатор
- •3.3. Алгоритм Брезенхема
- •3.4. Целочисленный алгоритм Брезенхема
- •3.5. Общий алгоритм Брезенхема
- •3.6. Алгоритм Брезенхема для генерации окружности
- •4. Растровая развертка изображения
- •4.1. Растровая развертка в реальном времени
- •4.2. Групповое кодирование
- •4.3. Клеточное кодирование
- •4.4. Буферы кадра
- •4.5. Изображение отрезков
- •4.6. Изображение литер
- •4.7. Растровая развертка сплошных областей и заполнение многоугольников
- •1 X 8 – внутри многоугольника;
- •1 Х 4 – внутри многоугольника;
- •6 Х 8 – внутри многоугольника;
- •4.8. Простой алгоритм с упорядоченным списком ребер
- •4.9. Алгоритм заполнения по ребрам
- •4.10. Алгоритм со списком ребер и флагом
- •4.11. Алгоритм заполнения с затравкой
- •4.12. Построчный алгоритм заполнения с затравкой
- •4.13. Основные методы устранения ступенчатости
- •4.14. Аппроксимация полутонами
- •5. Отсечение
- •5.1. Двумерное отсечение
- •5.2. Алгоритм отсечения Сазерленда-Коэна
- •5.3. Алгоритм разбиения средней точкой
- •5.4. Обобщение: отсечение двумерного отрезка выпуклым окном
- •5.5. Алгоритм Кируса–Бека
- •5.6. Внутреннее и внешнее отсечение
- •5.7. Определение факта выпуклости многоугольника
- •5.8. Разбиение невыпуклых многоугольников
- •5.9. Трехмерное отсечение
- •5.10. Определение выпуклости трехмерного тела
- •5.11. Отсечение невыпуклых тел
- •5.12. Отсечение многоугольников
- •5.13. Последовательное отсечение многоугольника – алгоритм Сазерленда – Ходжмена
- •5.14. Невыпуклые отсекающие области – алгоритм
- •5.15. Литеры
- •6. Удаление невидимых линий и поверхностей
- •6.1. Алгоритм плавающего горизонта
- •6.2. Алгоритм Робертса
- •6.3. Алгоритм Варнока
- •6.4. Алгоритм Вейлера–Азертона
- •6.5. Алгоритм, использующий z-буфер
- •6.6. Алгоритмы, использующие список приоритетов
- •6.7. Алгоритм построчного сканирования
- •6.8. Алгоритм построчного сканирования, использующий
- •Библиографический список рекомендуемой литературы
- •Оглавление
- •1. Машинная графика и обработка изображения с помощью эвм….……..3
4. Растровая развертка изображения
Для вывода на видеомониторы разложенный в растр образ необходимо представить в виде того шаблона, который требует дисплей. Это преобразование называется растровой разверткой. В отличие от дисплейного списка для векторного дисплея, содержащего информацию только об отрезках или литерах, в данном случае дисплейный список должен содержать информацию о каждом пикселе на экране. Необходимо, кроме того, чтобы эта информация организовывалась и выводилась со скоростью видеогенерации в порядке сканирования строк, т.е. сверху вниз и слева направо. Существует четыре способа достижения такого результата:
-
растровая развертка в реальном времени;
-
групповое кодирование;
-
клеточная организация;
-
память буфера кадра.
4.1. Растровая развертка в реальном времени
При развёртке в реальном времени сцена произвольно представляется в терминах визуальных атрибутов и геометрических характеристик. Типичными визуальными атрибутами являются цвет, оттенок и интенсивность, тогда как координаты x,y, углы наклона и текст относятся к геометрическим характеристикам. Последние упорядочены по координате y. Во время воспроизведения каждого кадра процессор сканирует эту информацию и вычисляет интенсивность каждого пикселя на экране. При такой развертке не нужны большие количества памяти. Требования к памяти обычно ограничиваются необходимостью хранить дисплейный список плюс одну сканирующую строку. Более того, поскольку информация о сцене хранится в произвольно организованном дисплейном списке, добавление или удаление информации из списка осуществляется легко, а это удобно для динамических приложений. Однако сложность выводимого изображения ограничивается скоростью дисплейного процессора. Обычно это означает, что ограничено число отрезков или многоугольников в картине, количество пересечений со сканирующей строкой или число цветов или полутонов серого. Поэтому использовать данный метод можно только для рисования несложных изображений.
4.2. Групповое кодирование
В методе группового кодирования сделана попытка воспользоваться тем, что большие области изображения имеют одинаковую интенсивность или цвет. При простейшем групповом кодировании определяется только интенсивность и количество последовательных пикселов с этой интенсивностью на данной сканирующей строке. Кодирующие данные следует рассматривать группами по два. Первое число – интенсивность, второе - число последовательных пикселов на сканирующей строке с этой интенсивностью:
Интенсивность |
Длина участка |
Для добавления цвета это простая схема группового кодирования может быть легко расширена. На данной сканирующей строке для цвета приводятся интенсивности красной, зеленой и синей цветовых пушек, а за ними - количество последних пикселов с этим цветом; например,
Интенсивность красного |
Интенсивность зеленого |
Интенсивность синего |
Длина участка |
Сжатие данных для изображений, закодированных группами, может приближаться к 10:1. Это существенно не только потому, что групповое кодирование просто экономит память, но и потому, что оно экономит память для машинно-синтезированных последовательностей кадров или фильма. Оно также экономит время передачи изображения по сети.
У группового кодирования есть и недостатки:
-
добавление или удаление отрезков или текста из изображения является трудоемкой операцией и занимает много времени из-за последовательного хранения длин участков;
-
кодирование и декодирование изображения влечет за собой дополнительные затраты времени;
-
для коротких участков одинаковой интенсивности может потребоваться в 2 раза больше памяти, чем при пиксельном хранении, например, когда изображение состоит из чередующихся черных и белых вертикальных отрезков шириной в 1 пиксель.