Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерная графика.docx
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
4 Мб
Скачать
☆

18. Неравномерное выравнивание гистограммы. Тональная и цветовая коррекция. Работа со светами и тенями

Кривых теперь недостаточно. Корректируется только часть пикселей (например, хотим осветлить какую-то темную область). Входные параметры:

  • тональный диапазон (ширина) в % — та часть диапазона, которую мы считаем тенями (светами)

  • радиус в пикселах

  • степень влияния: насколько будем осветлять тени / затемнять света.

Пиксель будет затемняться (осветляться) на указанную степень, если выполняются оба условия:

  1. Его яркость попадает в заданную тональную ширину

  2. В его окрестности заданного радиуса присутствует достаточное количество пикселей, которые тоже попадают в заданную тональную ширину.

Цветовая коррекция

C помощью кривых каждый компонент цвета (R,G,B) может обрабатываться независимо. Чтобы сохранить естественность цветов, кривые надо задавать согласованно. Существуют цвета, изменение которых наиболее сильно заметно человеку: цвет кожи и серый цвет. В RAW камера автоматически выполняет цветовую коррекцию.

Пример. На рисунке из серого изображения сделали изображение, в котором много красного и мало зеленого:

/*Вариант: На рисунке представлен фильтр, повышающий уровень красного и понижающий уровень зелёного. */

Пример (Катя). Раскидываем изображение на слои (света в отдельный слой, тени в отдельный), производим коррекцию раздельно по слоям.

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

19. Работа с резкостью изображений. Метод нерезкой маски

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

Для этого можно использовать метод нерезкой маски.

Идея:

  • Если при размытии цвет пикселя изменился сильно, то он — граничный.

Параметры:

  • Радиус размытия — определяет максимальную толщину границ.

  • Степень повышения локального контраста.

  • Порог — определяет минимальный перепад интенсивности, необходимый для того, чтобы точка определилась как граничная.

Алгоритм:

  1. Создаются вспомогательные изображения:

    • Размытое — получается размытием исходного изображения по Гауссу.

    • Контрастное — получается повышением глобального контраста исходного изображения.

    • Маска — определяется как разность исходного изображения и размытого.

  2. Цвет каждого пикселя выходного изображения берётся из:

    • контрастного изображения, если соответствующий пиксель маски больше некоторого порога (т.е. в процессе размытия пиксель изменился сильно)

    • исходного изображения — в противном случае.

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

20. Выделение границ на основе дифференциальных масок

Источник: http://habrahabr.ru/post/114452/

Рассмотрим сначала одномерный случай. Пусть f(x) — дискретно заданная функция, определяющая яркость пикселя с целой координатой X. Определим дискретную производную как

Соответственно, вторая производная — производная первой производной — будет иметь вид:

В общем виде дискретную производную можно представить как сумму

где

— матрица коэффициентов (весов):

    • для :

    • для :

Для двумерного случая определим дискретную производную как средневзвешенное одномерных производных в трёх соседних точках по горизонтали или вертикали:

где

M — матрица весов. При она будет иметь вид:

    • для :

    • для :

Для использования целочисленной арифметики и ускорения вычислений указанные матрицы весов умножают на шесть (маска Превитта):

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

А ещё есть маска Робертса (соответствует повернутому на 45° градиенту):

Чтобы не разрывать читателю шаблон, её можно представить в виде матрицы 3х3, в которой первая строка и столбец — нулевые. В качестве центрального элемента можно использовать, например, левый верхний. Благодаря меньшему размеру работает быстрее, чем маски Собеля / Превитта.

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

  • в точках высокого локального контраста:

    • имеет большое значение;

    • меняет знак, если достигает своего экстремума

  • в точках низкого локального контраста:

    • первая производная имеет малое значение (либо 0).

Использование лог-фильтра. Для каждого пикселя делаем два размытия: маленькое и большое, и берём разницу между этими значениями.

c-радиус сглаживания. Лог-фильтр для одномерного случая:

При сильном увеличении влияния возможно возникновение эффекта гало.

Идея согласованных фильтров

Маска — это окрестность пикселя, она может быть развернута в вектор чисел. Все возможные значения окрестных пикселов образуют векторное пространство. Его базисом является множество векторов, в каждом из которых только один ненулевой элемент. Аi — базизные векторы, xi - множители. Матрица яркостей вокруг пикселей В этом же линейном пространстве можно задать другой базис, элементы которого будут иметь более сложную структуру, например, наличие вертикальной / горизонтальной границы. Тогда если мы разложим по новому базису окрестность, то получим набор чисел, которые показывают степень похожести окрестности на соответствующий базисный элемент. Анализируя этот набор чисел, можно принимать решение о наличии границы. Элементы, по которым раскладываем — “согласованные фильтры”. Например, если взять маску Превитта Mx, то yi будут показывать оценку вертикальной границы.