- •Содержание
- •Товарищи
- •Общие вопросы компьютерной графики
- •1. Понятие компьютерной графики. Связь с другими науками
- •2. Физические аспекты восприятия
- •3. Основные цветовые модели
- •6. Основные подходы к кодированию цвета и хранению растровых изображений
- •4. Векторная графика
- •Хранение и обработка растровых изображений
- •5. Растровые изображения и их характеристики
- •7. Сжатие изображений на основе дкп (алгоритм jpeg)
- •8. Фрактальное сжатие изображений. Алгоритм Малла
- •9. Сжатие изображений без потерь (алгоритм jpeg-ls)
- •10. Формат цифровой фотографии (raw)
- •11. Подавление шумов изображений
- •12. Интерполяция растровых изображений (масштабирование, поворот, изгиб)
- •13. Бинаризация изображений. Метод Оцу
- •14. Алгоритм Флойда-Стейнберга
- •15. Метод упорядоченных возбуждений
- •16. Имитация цветов за счёт увеличения разрешения растра (маскирование)
- •17. Равномерное выравнивание гистограммы
- •18. Неравномерное выравнивание гистограммы. Тональная и цветовая коррекция. Работа со светами и тенями
- •19. Работа с резкостью изображений. Метод нерезкой маски
- •20. Выделение границ на основе дифференциальных масок
- •21. Детектор краёв Кенни
- •22. Векторизация растровых изображений. Метод Хафа
- •23. Определитель прямых Барнса
- •24. Методы сегментации изображений. Модели описания сегментов
- •Двумерная растровая графика
- •25. Алгоритм Брезенхема для рисования отрезков
- •26. Алгоритм Брезенхема для рисования окружностей
- •27. Кривые Безье. Алгоритм де Костельжо
- •28. Алгоритмы рисования закрашенного многоугольника
- •Алгоритм со списком активных рёбер.
- •29. Алгоритмы заполнения произвольных областей
- •30. Рисование стилизованных примитивов (толщина и начертание линий, текстуры)
- •31. Растеризация текста. Шрифты
- •32. Важность и постановка задачи двумерного отсечения
- •33. Алгоритм Сазерленда-Коэна
- •34. Алгоритм разбиения средней точкой
- •35. FastClip алгоритм (быстрого отсечения)
- •36. Алгоритм Лианга-Барски
- •37. Алгоритм Кируса-Бека
- •38. Алгоритм Сазерленда-Ходжмена
- •39. Фрактальная графика
- •Трёхмерная графика
- •40. Координатный метод описания объектов. Обобщённые координаты. Матрицы преобразования координат
- •41. Проецирование. Виды координат (модельные, видовые, проекционные, экранные)
- •42. Аналитическая модель описания поверхностей
- •43. Векторная модель описания поверхностей
- •44. Воксельная модель описания поверхностей
- •45. Классификация способов визуализации (рендеринга) трёхмерных сцен
- •46. Алгоритм Робертса для многогранников
- •47. Алгоритм плавающего горизонта для отрисовки поверхностей
- •48. Алгоритм с сортировкой по глубине
- •49. Алгоритм z-буфера и построчного сканирования
- •50. Алгоритм Варнока
- •51. Алгоритм Вейлера-Айзертона
- •52. Модели отражения света и их использование при закраске
- •53. Методы закраски: монотонная закраска, метод Гуро и метод Фонга. Имитация микрорельефа (карты нормалей)
- •54. Моделирование теней
- •55. Метод трассировки лучей
- •Трудоёмкая операция нахождения ближайшей грани.
- •Возможная оптимизация метода:
- •Современные технологии компьютерной графики
- •56. Основные идеи OpenGl и DirectX. Расширения OpenGl
- •Очистка буферов id3dDevice::Clear
- •Задание сцены
- •57. Аппаратная архитектура графических ускорителей. Графический конвейер
- •58. Особенности скоростной обработки данных в графических ускорителях
- •59. Шейдеры
- •Нефотореалистичная компьютерная графика
- •60. Цели и задачи нефотореалистичной компьютерной графики. Артефакты и их классификация
- •61. Методы маскирования изображений
- •62. Маскирование образами (текст, точка, линия)
- •63. Построение мозаик
- •64. Построение штриховых иллюстраций и текстур
- •65. Рисование реалистичных отрезков
18. Неравномерное выравнивание гистограммы. Тональная и цветовая коррекция. Работа со светами и тенями
Кривых теперь недостаточно. Корректируется только часть пикселей (например, хотим осветлить какую-то темную область). Входные параметры:
тональный диапазон (ширина) в % — та часть диапазона, которую мы считаем тенями (светами)
радиус в пикселах
степень влияния: насколько будем осветлять тени / затемнять света.
Пиксель будет затемняться (осветляться) на указанную степень, если выполняются оба условия:
Его яркость попадает в заданную тональную ширину
В его окрестности заданного радиуса присутствует достаточное количество пикселей, которые тоже попадают в заданную тональную ширину.
Цветовая коррекция
C помощью кривых каждый компонент цвета (R,G,B) может обрабатываться независимо. Чтобы сохранить естественность цветов, кривые надо задавать согласованно. Существуют цвета, изменение которых наиболее сильно заметно человеку: цвет кожи и серый цвет. В RAW камера автоматически выполняет цветовую коррекцию.
Пример. На рисунке из серого изображения сделали изображение, в котором много красного и мало зеленого:
/*Вариант: На рисунке представлен фильтр, повышающий уровень красного и понижающий уровень зелёного. */
Пример (Катя). Раскидываем изображение на слои (света в отдельный слой, тени в отдельный), производим коррекцию раздельно по слоям.
По-моему, имелось ввиду к текущему изображению добавить слой-маску, для которого провести коррекцию цвета и света, потому что не вижу я инструмента выделения тени и света как слой.
19. Работа с резкостью изображений. Метод нерезкой маски
Если лучи, идущие от одной точки объекта, не сходятся в одной точке светочувствительной матрицы камеры, то изображение получается нерезким. После того, как снимок сделан, физически исправить это уже нельзя, однако можно имитировать повышение резкости путём повышения контраста на границах объектов:
Для этого можно использовать метод нерезкой маски.
Идея:
Если при размытии цвет пикселя изменился сильно, то он — граничный.
Параметры:
Радиус размытия — определяет максимальную толщину границ.
Степень повышения локального контраста.
Порог — определяет минимальный перепад интенсивности, необходимый для того, чтобы точка определилась как граничная.
Алгоритм:
Создаются вспомогательные изображения:
Размытое — получается размытием исходного изображения по Гауссу.
Контрастное — получается повышением глобального контраста исходного изображения.
Маска — определяется как разность исходного изображения и размытого.
Цвет каждого пикселя выходного изображения берётся из:
контрастного изображения, если соответствующий пиксель маски больше некоторого порога (т.е. в процессе размытия пиксель изменился сильно)
исходного изображения — в противном случае.
Замечание. В исходном алгоритме после получения маски она бинаризуется с указанным порогом. Это может пригодиться, если нас интересуют промежуточные результаты работы алгоритма, а не только конечный.
20. Выделение границ на основе дифференциальных масок
Источник: http://habrahabr.ru/post/114452/
Рассмотрим сначала одномерный случай. Пусть f(x) — дискретно заданная функция, определяющая яркость пикселя с целой координатой X. Определим дискретную производную как
Соответственно, вторая производная — производная первой производной — будет иметь вид:
В общем виде дискретную производную можно представить как сумму
где
—
матрица коэффициентов (весов):
для
:
для
:
Для двумерного случая определим дискретную производную как средневзвешенное одномерных производных в трёх соседних точках по горизонтали или вертикали:
где
M —
матрица весов. При
она будет иметь вид:
для
:
для
:
Для использования целочисленной арифметики и ускорения вычислений указанные матрицы весов умножают на шесть (маска Превитта):
Кроме того, можно увеличить вес пикселей той же строки (столбца) для уменьшения эффекта сглаживания (маска Собеля):
А ещё есть маска Робертса (соответствует повернутому на 45° градиенту):
Чтобы не
разрывать читателю шаблон, её можно
представить в виде матрицы 3х3, в которой
первая строка и столбец — нулевые. В
качестве центрального элемента можно
использовать, например, левый верхний.
Благодаря меньшему размеру работает
быстрее, чем маски Собеля / Превитта.
Используя одну
из этих масок, можно найти частные
производные
и
в каждой точке изображения, а значит и
вектор градиента
— он показывает, насколько резко
изменяется яркость в точке. По его модулю
можно определить, является ли пиксель
граничным или нет:
в точках высокого локального контраста:
имеет большое значение;
меняет знак, если
достигает своего экстремума
в точках низкого локального контраста:
первая производная имеет малое значение (либо 0).
Использование лог-фильтра. Для каждого пикселя делаем два размытия: маленькое и большое, и берём разницу между этими значениями.
c-радиус сглаживания. Лог-фильтр для
одномерного случая:
При сильном увеличении влияния возможно возникновение эффекта гало.
Идея согласованных фильтров
Маска — это
окрестность пикселя, она может быть
развернута в вектор чисел. Все возможные
значения окрестных пикселов образуют
векторное пространство. Его базисом
является множество векторов, в каждом
из которых только один ненулевой элемент.
Аi — базизные векторы, xi -
множители. Матрица яркостей вокруг
пикселей
В этом же линейном пространстве можно
задать другой базис, элементы которого
будут иметь более сложную структуру,
например, наличие вертикальной /
горизонтальной границы.
Тогда
если мы разложим по новому базису
окрестность, то получим набор чисел,
которые показывают степень похожести
окрестности на соответствующий базисный
элемент. Анализируя этот набор чисел,
можно принимать решение о наличии
границы. Элементы, по которым раскладываем
— “согласованные фильтры”. Например,
если взять маску Превитта Mx, то
yi будут показывать оценку
вертикальной границы.
