- •Введение
- •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.13. Основные методы устранения ступенчатости
Для того чтобы эффективно бороться со ступенчатостью (лестничным эффектом), приводящей к искажениям в изображении, необходимо выяснить причины, ее вызывающие. Основная причина заключается в том, что отрезки, ребра многоугольника, цветовые границы и т.д. имеют непрерывную природу, тогда как растровое устройство дискретно. Для представления отрезка, ребра многоугольника и т.д. на растровом устройстве необходимо правильно начертить их в дискретных координатах.
В алгоритмах разложения отрезка в растр и заполнения многоугольника интенсивность или цвет пикселя определялась интенсивностью или цветом единственной точки внутри области пикселя. В этих методах предполагалось, что пиксель является скорее математической точкой, нежели конечной областью.
Определение местоположения пикселя основывается на положении центра пикселя. Если центр находится в центре области, то активируется весь пиксель, а если центр находится вне области, то игнорируется вся область пикселя. Этот метод необходим для простых двухуровневых изображений, цвета многоугольника или цвета фона. В результате получается характерное ступенчатое или зазубренное ребро многоугольника или отрезок.
При наличии нескольких интенсивностей, т.е. полутонов серого или оттенков цвета, внешний вид ребра или отрезка может быть улучшен размыванием краев. Простой метод состоит в том, чтобы устанавливать интенсивность пикселя на ребре пропорционально площади части пикселя, находящегося внутри многоугольника.
В результате простой модификации алгоритма Брезенхема можно получить аппроксимацию площади части пикселя, находящейся внутри многоугольника. Эту аппроксимацию можно использовать для модуляции интенсивности.
Модифицированный алгоритм Брезенхема с устранением ступенчатости для первого квадранта
Отрезок проводится из (X1,Y1) в (X2,Y2)
I - число доступных уравнений интенсивности
все переменные целого типа
инициализация переменных
X=Х1; Y=Y1; X=X2-X1; Y=Y2-Y1;
m=(I*Y)/X;
W=I–m;
e=I/2;
plot(X,Y,m/2);
while (X<X2)
if e<W then
X=X+1;
e=e+m
else
X=X+1;
Y=Y+1;
e=e-W;
end{if};
plot(X,Y,e)
end{while}
end.
4.14. Аппроксимация полутонами
Сглаживание или устранение ступенчатости - это метод улучшения визуального разрешения с использованием нескольких уровней интенсивности. Аппроксимация полутонами, с другой стороны, - это метод, в котором используется минимальное число уравнений интенсивности, обычно черный и белый.
В изуальное разрешение машинно-сгенерированных изображений можно улучшить с помощью метода, называемого конфигурированием. Для изображения с фиксированным разрешением несколько пикселов объединяются в конфигурации. Рассмотрим возможные группы конфигураций для двухуровневого черно-белого дисплея. Для каждой клетки используется четыре пикселя. При такой организации получается пять возможных комбинаций уровней или тонов серого (0-4) (рис.9,а). Не следует применять ни одну из комбинаций, представленных на рис.9,б,в, иначе это приведет к тому, что для каждой области с постоянной интенсивностью на изображении появятся нежелательные горизонтальные или вертикальные линии. Число доступных уровней интенсивности можно увеличить с помощью увеличения размера клетки. Конфигурации для клетки 3х3 пикселов дают десять уравнений интенсивности. Клетки конфигураций необязательно должны быть квадратными (например, 3x2).