- •Томск 2004
- •1.Введение
- •1.1.Способы представления изображений в памяти эвм
- •1.2.Классификация программного обеспечения компьютерной графики
- •Параметры растровых изображений
- •1.3.Представление цвета в компьютере
- •1.3.1.Цветовые модели
- •1.3.2.Системы управления цветом
- •1.4.Графические файловые форматы
- •По типу хранимой графической информации:
- •2.Растровые алгоритмы
- •2.1.Алгоритмы растеризации
- •2.1.1.Растровое представление отрезка. Алгоритм Брезенхейма
- •2.1.2.Растровая развёртка окружности
- •2.1.3.Закраска области, заданной цветом границы
- •2.1.4.Заполнение многоугольника
- •2.2.Методы устранения ступенчатости
- •2.2.1.Метод увеличения частоты выборки
- •2.2.2.Метод, основанный на использовании полутонов
- •2.3.Простейшие методы обработки изображений
- •2.3.1.Яркость и контраст
- •2.3.2.Масштабирование изображения
- •2.3.3.Преобразование поворота
- •2.3.4.Цифровые фильтры изображений
- •3.Компьютерная геометрия
- •3.1.Двумерные преобразования
- •3.1.1.Однородные координаты
- •3.1.2.Двумерное вращение вокруг произвольной оси
- •3.2.Трехмерные преобразования и проекции
- •3.3.Проекции
- •3.4.Математическое описание плоских геометрических проекций
- •3.5.Изображение трехмерных объектов
- •4.Представление пространственных форм
- •4.1.Полигональные сетки
- •4.1.1.Явное задание многоугольников
- •4.1.2.Задание многоугольников с помощью указателей в список вершин
- •4.1.3.Явное задание ребер
- •4.2.Введение
- •4.3.Алгоритм плавающего горизонта
- •4.4.Алгоритм Робертса
- •4.4.1.Определение нелицевых граней
- •4.4.2.Удаление невидимых ребер
- •4.5.Алгоритм, использующий z буфер
- •4.6.Метод трассировки лучей (ray casting)
- •4.7.Алгоритмы, использующие список приоритетов
- •4.7.1.Алгоритм Ньюэла-Ньюэла-Санча для случая многоугольников
- •4.8.Алгоритм Варнока (Warnock)
- •4.9.Алгоритм Вейлера-Азертона (Weiler-Atherton)
- •5.Методы закраски
- •5.1.Диффузное отражение и рассеянный свет
- •5.2.Зеркальное отражение
- •5.3.Однотонная закраска полигональной сетки
- •5.4.Метод Гуро
- •5.5.Метод Фонга
- •5.6.Тени
- •5.7.Поверхности, пропускающие свет
- •5.8.Детализация поверхностей
- •5.8.1.Детализация цветом
- •5.8.2.Детализация фактурой
- •6.Библиотека OpenGl
- •6.1.Особенности использования OpenGl в Windows
- •6.2.Основные типы данных
- •6.3.Рисование геометрических объектов
- •6.3.1.Работа с буферами и задание цвета объектов
- •6.3.2.Задание графических примитивов
- •6.3.3.Рисование точек, линий и многоугольников
- •6.4.Преобразование объектов в пространстве, камеры
- •6.4.1.Преобразования в пространстве
- •6.4.2.Получение проекций
- •6.5.Задание моделей закрашивания
- •6.6.Освещение
- •6.7.Полупрозрачность. Использование α-канала
- •6.8.Наложение текстуры
- •7.Аппаратные средства машинной графики
- •7.1.Устройства ввода
- •7.1.1.Сканеры
- •Принцип действия и виды сканеров
- •Основные характеристики
- •Фирмы-производители
- •7.1.2.Дигитайзеры
- •Принцип действия
- •Основные характеристики
- •Фирмы-производители
- •7.1.3.Цифровые фотокамеры
- •Принцип действия
- •Фирмы-производители
- •8.Литература
- •9.Содержание
- •1. Введение 3
- •2. Растровые алгоритмы 27
- •3. Компьютерная геометрия 52
- •4. Представление пространственных форм 83
- •5. Методы закраски 114
- •6. Библиотека OpenGl 124
- •7. Аппаратные средства машинной графики 141
- •8. Литература 147
- •9. Содержание 149
2.3.3.Преобразование поворота
Преобразование поворота, также как и при рассмотрении плоских геометрических объектов, позволяет поворачивать исходное изображение на заданный угол. Поворот осуществляется вокруг центра изображения. При этом возможны два варианта поворота:
1. Области изображения, вышедшие за его границы при повороте отсекаются, а незаполненные части заполняются каким-либо цветом.
2. Рассчитывается новый размер изображения на основе угла поворота таким образом, чтобы повёрнутое изображение целиком поместилось в новые размеры. Незаполненные части изображения также заполняются каким-либо цветом.
В любом случае, для расчёта преобразования поворота может быть использована следующая формула:
Cnew[i][j] =
a = , b =
,
В этой формуле параметр C определяет цвет, которым заполняются пустые участки изображения. Параметр φ определяет угол поворота по часовой стрелке в радианах.
Приведённая формула округляет преобразованные координаты. Однако можно использовать и билинейную интерполяцию, когда цвет пикселя вычисляется как взвешенная сумма цветов четырёх соседних пикселей.
2.3.4.Цифровые фильтры изображений
Цифровые фильтры позволяют накладывать на изображение различные эффекты, например, размытие, резкость, деформация, шум и т. д.
Цифровой фильтр представляет собой алгоритм обработки изображения. Большая группа цифровых фильтров имеет один и тот же алгоритм, но эффект, накладываемый фильтром на изображение, зависит от коэффициентов, используемых в алгоритме.
Рассмотрим цифровые фильтры с конечной импульсной характеристикой, основанные на теории линейных систем и применении двумерных свёрток.
Свёртка представляет собой способ представления какого-либо векторного значения скалярным значением. Существует бесконечное количество таких способов, многие из которых определяются некоторыми коэффициентами. Применительно к обработке изображений, векторное значение представляет собой цвет группы пикселей, а скалярное значение, получаемое на основе свёртки, представляет собой цвет пикселя, получаемого в результате применение к исходному изображению какого-либо эффекта.
Цифровые фильтры на основе свёртки характеризуются размером группы пикселей, которой они оперируют. Это называется размером фильтра. Также фильтр характеризуется своей импульсной характеристикой. Применительно к обработке изображений, импульсная характеристика фильтра представляет собой изображение, получаемое в результате обработки чёрного изображения, в центре которого располагается белая точка. Конечность импульсной характеристики определяется конечным размером группы пикселей, используемой в фильтре. Импульсная характеристика зависит от размера фильтра и определяется коэффициентами фильтра. Коэффициенты фильтра представляют собой некоторые скалярные значения, на которые умножаются значения цветов пикселей из группы, соответствующей размеру фильтра. Обработка изображения, с применением такого рода фильтров, описывается следующей формулой:
Cnew[i][j] = Cold[i – m/2][j – n/2]
В этой формуле коэффициенты α определяют тот эффект, который накладывает фильтр. Константы m и n задают размер фильтра (он является двумерным).
Основной задачей при разработке цифровых фильтров с конечной импульсной характеристикой является расчёт коэффициентов фильтра. Рассмотрим типовые примеры фильтров с конечной импульсной характеристикой.
Изображение, так же как и звук, может рассматриваться как суперпозиция функций синуса и косинуса с различной амплитудой и фазой. При этом эти функции являются двумерными, так как само изображение двумерно. Высокие частоты в изображении означают резкие изменения яркости пикселей. Низкие частоты означают плавные изменения яркости пикселей. На рис. 2.16 а) представлено изображение, состоящее из низких частот, а на рис. 2.16 б) – из высоких.
Рис. 2.25 Разночастотные изображения
Часто возникает задача увеличения резкости изображения, что означает усиление высоких частот. Также может возникать задача уменьшения резкости и увеличения размытости, что означает усиление низких частот.
Следующая матрица определяет коэффициенты цифрового фильтра размером 3 на 3 пикселя, используемого для повышения резкости изображения.
– k/8 |
– k/8 |
– k/8 |
– k/8 |
k + 1 |
– k/8 |
– k/8 |
– k/8 |
– k/8 |
где параметр k определяет степень повышения контраста. Обычно используется k = 2. Следующая матрица определяет коэффициенты цифрового фильтра размером 3 на 3 пикселя, используемого для повышения размытости изображения.
1/9 |
1/9 |
1/9 |
1/9 |
1/9 |
1/9 |
1/9 |
1/9 |
1/9 |
В данной матрице значения всех коэффициентов одинаковы. Это практически означает, что цвета группы пикселей 3 на 3 просто усредняются. Размер матрицы определяет степень размытости. Например, если используется матрица 5 на 5, где каждый элемент равен 1/25, то размытость изображения будет больше, чем при использовании матрицы 3 на 3. Также часто используется размытие по Гауссу.
Из приведённых выше примеров видно, что сумма всех коэффициентов равна 1. Это основное условие, используемое при расчёте фильтров с конечной импульсной характеристикой. Несоблюдение этого условия приводит к тому, что контраст изображения после применения фильтра изменяется.
Также отметим, что размер фильтра всегда является нечётным (например, 3 на 3 или 5 на 5).