Лекция 4 Цвет, квантование, фильтрация, шумоподавление Алексей Лукин [email protected] План лекции Свет и цвет – Восприятие цвета – Цветовые системы Палитры и квантование цветов – Кластеризация K-средних Псевдотонирование – Метод диффузии ошибки Фильтрация – Свертка –
Download
Report
Transcript Лекция 4 Цвет, квантование, фильтрация, шумоподавление Алексей Лукин [email protected] План лекции Свет и цвет – Восприятие цвета – Цветовые системы Палитры и квантование цветов – Кластеризация K-средних Псевдотонирование – Метод диффузии ошибки Фильтрация – Свертка –
Лекция 4
Цвет, квантование,
фильтрация,
шумоподавление
Алексей Лукин
[email protected]
План лекции
Свет и цвет
– Восприятие цвета
– Цветовые системы
Палитры и квантование цветов
– Кластеризация K-средних
Псевдотонирование
– Метод диффузии ошибки
Фильтрация
– Свертка
– Простейшие фильтры
Шумоподавление
– Метод K nearest neighbors
– Метод Non-local means
Меры качества изображений
Свет и цвет
Свет и его спектр
380
500
560
590
–
–
–
–
470
560
590
760
нм
нм
нм
нм
–
–
–
–
фиолетовый, синий
зеленый
желтый, оранжевый
красный
Свет и цвет
R I ( ) PR ( )d
Восприятие цвета
G I ( ) PG ( )d
B I ( ) PB ( )d
P
(чувствительность
колбочек глаза)
G
I
R
(интенсивность)
I (λ)
B
440
540
580
λ, нм
(длина волны)
λ
Какой это цвет?
Свет и цвет
Цветовые системы
– RGB и дисплеи, гамма-коррекция
– Аддитивные (RGB) и субтрактивные (CMYK) системы
RGB
CMY
Свет и цвет
Цветовые системы
– HSV (Hue/Saturation/Value)
– Система YUV и прореживание хроматических компонент
Свет и цвет
Система YUV: разделение яркости и хроматических
компонент
Y 0.299 R 0.587 G 0.114 B
U -0.147 R - 0.289G 0.436 B
V 0.615 R - 0.515G - 0.100 B
Системы CIE Lab, Luv, CIEDE2000 и равномерность
восприятия
Квантование цвета
Квантование
– Раньше: ограничение видеопамяти → ограничение числа
цветов → программируемые палитры
– Теперь: уменьшение размера графических файлов, другие
нужды (для спецэффектов, повышение резкости границ)
Палитры в видеоадаптерах и BMP-файлах
RGB
64 цвета
16 цветов
Квантование цвета
Палитризация
– Равномерное квантование
– По популярности
Гистограмма
– Медианное сечение
цветового куба
Квантование цвета
Метод кластеризации K-средних
1.
2.
3.
4.
Выбрать начальное приближение палитры из N
различных цветов
Классифицировать все пиксели на N кластеров по
цвету
Найти средний цвет (центроиду) каждого кластера и
назначить их новыми цветами палитры
Пока цвета обновляются – goto 2
Псевдотонирование
Цель: уменьшить видимые артефакты палитризации
Округление
16 цветов
RGB
Псевдотонирование
Псевдотонирование
1-й шаг – сведение к градациям серого
Mono 0.3 red 0.59 green 0.11 blue
Псевдотонирование
1-й шаг – сведение к градациям серого
Mono 0.3 red 0.59 green 0.11 blue
Псевдотонирование
Методы
– Округление
Dst[ x, y] truncate(Mono[ x, y])
Псевдотонирование
Методы
– Dithering (добавление шума)
Dst[ x, y] truncate(Src[ x, y] Noise[ x, y])
Белый шум – случайные числа с нулевым
мат. ожиданием
Псевдотонирование
Методы
– Упорядоченное псевдотонирование
1.
2.
3.
4.
Изображение разбивается на блоки
В каждом блоке вычисляется средняя
интенсивность
В зависимости от интенсивности
выбирается нужный шаблон
Шаблон записывается в блок
Примеры шаблонов
с разными степенями заполнения:
Псевдотонирование
for (i=0; i<Height; i++)
for (j=0; j<Width; j++) {
Dest[i][j] = quantize(Src[i][j]);
e = Dest[i][j] – Src[i][j];
Src[i][j+1] -= e;
}
Методы
– Диффузия ошибки
Идея алгоритма: ошибка, внесенная при
квантовании текущего пикселя,
распределяется между соседними (еще
не квантованными) пикселями.
Примеры видов распределения ошибки:
e
e
7e/16
e
3e/16 5e/16
простейший
e/16
Floyd-Steinberg
Фильтры
Как работают фильтры
Коэффициенты фильтра,
ядро свертки 3x3,
«функция размытия точки»
0 1 0
Ker[ k , p ]
1
1 2 1
6
0 1 0
-1 ≤ k ≤ 1,
-1 ≤ p ≤ 1
Фильтры
Свертка
Dst[i, j ] Src[i, j ] Ker[k , p]
Dst[i, j ] Src[i k , j p] Ker[k , p]
k, p
// Обнулить изображение Dest[i][j]
...
// Выполнить свертку
for (i=0; i<Height; i++)
// Для каждого пикс. Dest[i][j]...
for (j=0; j<Width; j++)
for (k=-1; k<=1; k++)
// ...превратить его в ядро свертки
for (p=-1; p<=1; p++)
Dest[i+k][j+p] += Src[i][j] * Ker[k][p];
// и сложить
Подводные камни:
• Выход за границы массива
• Выход за пределы допустимого диапазона яркости пикселей
• Обработка краев.
Фильтры
Свойства фильтров
1.
Результат фильтрации однотонного (константного)
изображения – константное изображение. Его цвет
равен
Dest Src Ker[k , p]
k, p
2.
Следствие: чтобы фильтр сохранял цвет однотонных
областей, нужно чтобы
Ker[k , p] 1
k, p
3.
Следствие: если сумма коэффициентов фильтра равна
нулю, то он переводит однотонные области в нулевые.
Примеры фильтров
Размытие (blur)
Примеры фильтров
Повышение четкости (sharpen)
Примеры фильтров
Нахождение границ (edges)
Примеры фильтров
Тиснение (embossing)
Примеры фильтров
1 2 1
Простейшее размытие
Константное размытие
“box-фильтр”
Ker[k , p ]
1
2 3 2
15
1 2 1
1
Ker [k , p]
Sum
(любой размер фильтра)
Гауссово размытие
(любой размер фильтра)
1
k 2 p2
Ker[k , p]
exp
Sum
2 2
Примеры фильтров
1 2
1
2 22 2
10
1 2 1
Повышение резкости
Нахождение границ
Тиснение
1
0
1
0
1
4
1
0
1
0
0
1
0
1
0
1
0 1
0
+ модуль,
нормировка,
применение порога…
+ сдвиг яркости,
нормировка…
Фильтры
Некоторые свойства свертки
Пусть X и Y – изображения, H – ядро свертки
1.
Линейность
(const X ) H const ( X H )
( X Y ) H ( X H ) (Y H )
2.
Инвариантность к сдвигу
( X [i i0 , j j0 ] H ( X H )[i i0 , j j0 ]
Фильтры
Сепарабельные (разделимые) фильтры
Ker[k , p] F (k ) G( p)
Если фильтр сепарабельный, то фильтрацию можно производить
быстрее:
1. Отфильтровать все столбцы одномерным фильтром F(k)
2. Отфильтровать все строки одномерным фильтром G(p)
Гауссиан – сепарабельный фильтр, т.к.
1
k2
p2
Gauss[k , p]
exp
exp
2
Sum
2
2 2
Еще один сепарабельный фильтр – box-фильтр
Фильтры
Unsharp Mask
–
–
Параметры: радиус, сила эффекта, порог срабатывания
Идея: вычесть из изображения его размытую копию,
скомпенсировав уменьшение яркости
R[i, j ] (1 ) X [i, j ] GX [i, j ]
α контролирует силу эффекта,
GX – размытая копия изображения (обычно фильтр Гаусса)
–
Переменная сила эффекта α помогает избежать
усиления шума. Обычно α уменьшают при малых
значениях разности X – GX (меньше порога срабатывания)
Фильтры
Медианный фильтр
–
–
–
–
–
Каждый пиксель принимает значение, являющееся
медианой значений пикселей в окрестности
Медиана – средний элемент в отсортированном массиве
Позволяет подавить шум (особенно, единичные
«выпадающие» пиксели), не размывая границ
Медианный фильтр нелинейный (как доказать?)
Векторная медиана – такой элемент массива, для
которого сумма L1-расстояний до остальных элементов
минимальна (для одномерного случая – совпадает с предыдущим
определением)
Фильтры
Понятие о частотах в изображении и звуке
–
–
–
–
Частоты и гармонические колебания (звук)
Частоты и детали (изображение)
Постоянная составляющая
Действие фильтров
Фильтр размытия – НЧ-фильтр
Фильтр повышения четкости – ВЧ-фильтр
Фильтр нахождения границ – ВЧ-фильтр
Фильтры и обработка звука
Шумоподавление
Простейшие методы
–
Размытие изображения – вместе с шумом размывает
детали
–
Размытие в гладких областях – остается шум вблизи
границ
Медианная фильтрация – хорошо подавляет импульсный
шум, но удаляет мелкие детали
–
Шумоподавление
Адаптивные алгоритмы
–
yi , j xi k , j m W (i, j, k , m)
K nearest neighbors (K-NN)
k ,mQ
усреднение окружающих
пикселей
( xi , j xi k , j m ) 2
k 2 m2
exp
W (i, j , k , m) exp
2
2
с весами
h
фотометрическая близость
пространственная близость
Шумоподавление
Адаптивные алгоритмы
–
Non-local means (NL-means) – веса зависят от близости
целых блоков, а не отдельных пикселей
(x ) (x
i, j
ik , j m )
W (i, j , k , m) exp
h2
2
ν(xi,j) – блок вокруг
пикселя xi,j
Метрики качества
Как измерить похожесть двух изображений?
исходное
изображение
искаженное
изображение
Метрики качества
Среднеквадратичная ошибка (MSE)
1 N
MSE ( xi yi ) 2
N i 1
N – число пикселей
Пиковое отношение сигнал/шум (PSNR)
M2
PSNRdB 10 lg
MSE
M – максимальное
значение пикселя
Метрики качества
PSNR и MSE не учитывают особенности
человеческого восприятия!
Оригинал
Далее будут использованы рисунки из статьи
Wang, Bovik, Lu “WHY IS IMAGE QUALITY ASSESMENT SO DIFFICULT?”
Метрики качества
У этих изображений одинаковые PSNR с
оригиналом (примерно 25 dB)
Повышена контрастность
Добавлен белый гауссов шум
Метрики качества
И у этих – тоже примерно 25 dB!
Добавлен импульсный шум
Размытие
Метрики качества
И у этого – тоже!
Артефакт блочности после JPEG
Метрики качества
Вывод: PSNR не всегда отражает реальный
видимый уровень искажений.
Как улучшить?
–
HVS models
(human visual system)
–
–
Использовать функцию чувствительности
глаза к различным частотам (CSF)
Использовать свойство маскировки
Использовать равномерные к восприятию
цветовые пространства (CIE Lab, CIEDE2000)
Метрики качества
Contrast sensitivity function (CSF)
–
Показывает чувствительность глаза к различным
частотам
Абсцисса – пространственная частота
(колебаний / градус угла обзора)