Линейные фильтры.

advertisement
Оглавление
Линейные фильтры. ...........................................................................................................2
Mean фильтр. ..................................................................................................................2
Фильтр Гаусса. ................................................................................................................2
Фильтр LoG......................................................................................................................3
Motion blur. .....................................................................................................................4
Стохастические фильтры. ..................................................................................................6
Медианный фильтр. ......................................................................................................6
Сегментация. ......................................................................................................................7
k-means (k средних). ......................................................................................................7
Mean shift ......................................................................................................................12
Фильтры зашумления. .....................................................................................................13
Белый шум. ...................................................................................................................13
Пыль. .............................................................................................................................13
Соль и перец. ................................................................................................................13
Морфологический анализ изображения. ......................................................................13
Эрозия. ..........................................................................................................................13
Дилатация. ....................................................................................................................13
Преобразования по изменению цветности. ..................................................................13
Инверсия. ......................................................................................................................13
Линейные фильтры.
Линейным фильтром называется такое преобразование изображения 𝑓, что для
любых двух изображений 𝐴 и 𝐵 и любых констант 𝛼 и 𝛽 выполняется:
𝑓(𝛼𝐴 + 𝛽𝐵) = 𝛼𝑓(𝐴) + 𝛽𝑓(𝐵)
Линейный фильтр можно представить через интеграл свертки:
𝑓(𝐴)(𝑥, 𝑦) = ∫ 𝐾(𝜉 , 𝜂)𝐴(𝑥 + 𝜉, 𝑦 + 𝜂)𝑑𝜉𝑑𝜂 ,
(1)
𝑤
где 𝐾(𝜉, 𝜂) - ядро преобразования. Обычно ядро отлично от нуля на небольшом
ограниченном множестве, либо очень быстро убывает (например гауссиан).
Так как изображение является дискретным сигналом, вместо интеграла удобнее
использовать сумму, а ядро представлять как матрицу, размерность которой будет
̂ = {𝑘𝑖,𝑗 }2𝑟+1 , где 𝑟
невелика в силу того, что ядро отлично от нуля в небольшой области, 𝐾
𝑖,𝑗=1
– радиус ядра. Тогда формула (1) преобразуется в
𝑟
𝑟
(2)
𝑓(𝐴)[𝑥][𝑦] = ∑ ∑ 𝑘𝑖+𝑟+1,𝑗+𝑟+1 𝐴[𝑥 + 𝑖][𝑦 + 𝑗].
𝑖=−𝑟 𝑗=−𝑟
Mean фильтр.
Простейшим примером линейного фильтра является mean-фильтр. Mean фильтр
изменяет значения каждого пикселя на среднее от его соседей. Для mean фильтра
радиуса 𝑟 матрица преобразования имеет вид
1 … 1
1
𝐾𝑚𝑒𝑎𝑛 =
(
… … …),
(2𝑟 + 1)2
1 … 1
а формула (2) вычисляет среднее значение в квадрате [𝑥 − 𝑟; 𝑥 + 𝑟] × [𝑦 − 𝑟, 𝑦 + 𝑟].
Фильтр Гаусса.
Фильтр гаусса это линейный фильтр с ядром Гаусса
𝜉 2 +𝜂2
1
−
𝐾(𝜉, 𝜂) =
𝑒 2𝜎2 .
2𝜋𝜎 2
Гауссиан всегда больше нуля, но почти весь сосредоточен в области вокруг нуля
(правило 3-х сигм), поэтому сильно удаленные пиксели почти не будут вносить вклада.
Для дискретных преобразований часто используются дискретные аппроксимации
гауссина. Например для 𝜎 = 1, можно считать, что 𝑟 = 2, а матрица преобразования
имеет вид:
7
4 1
1 4
1 4 16 26 16 4
7 26 41 26 7 .
𝐾𝑔𝑎𝑢𝑠𝑠 =
273 4 16 26 16 4
(1
4
7
4
1)
Рисунок 1. График двумерного гауссиана.
Фильтр LoG.
Лапласиан 𝐿(𝑥, 𝑦) изображения с интенсивностью пикселей 𝐼(𝑥, 𝑦) :
𝜕2𝐼 𝜕2𝐼
𝐿(𝑥, 𝑦) =
+
𝜕𝑥 2 𝜕𝑦 2
Применение линейного фильтра с ядром 𝐿(𝑥, 𝑦) выделяет на изображении области
быстрого изменения интенсивности, благодаря чему облегчается определение краев
отдельных объектов на изображении. Такой фильтр очень чувствителен к шуму, поэтому
необходимо перед его применением произвести «сглаживание» изображения, например,
фильтром Гаусса.
Так как операция свертки линейна, имеется возможность предварительно найти свертку
фильтра гаусса и Лапласиана, и потом уже применять полученный фильтр к изображению.
Функция, получаемая в результате свертки двух фильтров, имеет вид:
1
𝑥 2 + 𝑦 2 −𝑥 2 +𝑦2 2
𝐿𝑜𝐺(𝑥, 𝑦) = − 4 (1 −
) 𝑒 2𝜎
𝜋𝜎
2𝜎 2
Перед применением фильтра необходимо указать два параметра:

R – радиус (размер ядра фильтра)

𝜎 – дисперсия в ядре Гаусса.
Motion blur.
Motion blur применяется для создания эффекта движения. В результате
применения этого фильтра в каждый пиксель изображения заменяется на среднее тех
пикселей, которые пришли в эту точку в результате движения.
Рисунок 2. Исходное изображение.
Рисунок 3. Применение эффекта Motion blur c движением по прямой.
Рассмотрим Motion blur в случае прямолинейного движения.
Представлять фильтр в виде (2) неудобно потому что матрица будет очень
большого размера, но сильно разреженной (там будут 1 только на траектории), поэтому
будем действовать иначе.
Зададим величину сдвига 𝑑 и скорость движения 𝑣 и время наблюдение движения
𝑑
𝑇. В каждый момент времени 𝑡𝑖 = 𝑖 , 𝑖 ∈ 𝑁 к пикселю исходного изображения будем
𝑣
добавлять пиксель, который придет в него в данный момент времени. Когда пройдет
время 𝑇, закончим итерации и поделим значение в точке на количество пикселей,
пришедших в нее.
Аналогично можно выполнить фильтр Zoom blur (движение от центра изображения
к краям) и Spin blur (вращение изображения вокруг центра).
Рисунок 4. Применение Motion blur, Zoom blur и Spin blur.
Cлева направо, cверху вниз: 1-Исходное изображение; 2-Motion blur (сдвиг на 30% от
размеров изображения под углом 135 градусов, 10 итераций); 3-Zoom blur (увеличение
в 2 раза, 30 итераций); 4-Spin blur (поворот на 25 градусов, 5 итераций).
Стохастические фильтры.
Медианный фильтр.
Сегментация.
Сегментация – это процесс разделения пикселей изображения на несколько
множеств (сегментов) для упрощения анализа изображения. Пиксели сегментов могут
быть закрашены одним цветом, а могут просто получать метки.
Сегментация, является частным случаем кластеризации данных (разбиение точек
всего множества на некоторые подмножества по критерию близости в заданной
метрике). Изображение можно представить как множество точек в пространстве 𝑅 5 , так
каждый пиксель имеет две пространственные координаты и три цветовые. Так же можно
использовать яркость и другие характеристики.
Метрикой в таком пространстве может быть взвешенная сумма
пространственных и цветовых метрик, например
||𝑃1 − 𝑃2 || = 𝜆||𝑟1 − 𝑟2 ||𝑝 + (1 − 𝜆)||𝑐1 − 𝑐2 ||𝑞 , 𝜆 ∈ [0; 1], 𝑝 ≥ 1, 𝑞 ≥ 1
Рисунок 5.
Разные виды
метрик
где 𝑟𝑖 , 𝑐𝑖 - пространственная и цветовая компоненты точки 𝑃𝑖 . Чаще всего
применяются метрики с параметрами 1, 2, ∞ (Error! Reference source not
found.). Чем больше 𝑝 и 𝑞, тем большее количество точек считаются
близкими. На рисунке видно, что площадь единичного шара растет с ростом
параметра. Иногда применяются метрики с параметрами меньше 1.
Сегментация изображения активно применяется в медицине, для
определения по снимкам мест опухолей и патологий, в изучении объектов и
местности спутниковым снимкам, в машинном зрении для распознавания
объектов и человеческих лиц.
k-means (k средних).
Одним из наиболее популярных алгоритмов кластеризации является алгоритм kmeans. Базовый алгоритм выглядит так:
1. Выбрать k центров кластеров, случайно или на основании некоторой эвристики.
2. Поместить каждый пиксель изображения в кластер, центр которого ближе всего
к этому пикселю.
3. Заново вычислить центры кластеров, усредняя все пиксели в кластере.
4. Повторять шаги 2 и 3 до сходимости (например, когда пиксели будут оставаться в
том же кластере).
Преимуществами это алгоритма является простота и гарантированная сходимость.
Недостатки состоят в том, что необходимо знать заранее количество кластеров и их
расположение и как следствие сильная зависимость алгоритма от начальных условий.
Второй недостаток состоит в том, что алгоритм может сходиться не к оптимальному
решению.
Рисунок 6. Пример работы алгоритма для кластеризации точек в двумерном
пространстве.
Для применения этого алгоритма к задаче сегментации изображения можно взять
следующую метрику:
||𝑃1 − 𝑃2 || = 𝜆||𝑟1 − 𝑟2 ||2 + (1 − 𝜆)||с1 − с2 ||1 .
Выбирая различные 𝜆 можно определить что более важно: близость точек на картинке (𝜆
близко к 1) или близость точек по цвету (𝜆 близко к нулю).
Если 𝜆 = 0, то координаты точек никак не влияют на процесс и кластеры
определяются только цветами. Тогда изначально можно равномерно распределить
кластеры по палитре и таким образом выполнить пункт 1, указанного выше алгоритма.
Кластеризацию такого типа можно использовать для раскраски изображения в k цветов,
но эффект не всегда получается хорошим из-за того, что в метрике не учитывается
яркость, важная для человеческого восприятия.
Если считать метрику по цвету как:
||𝑐1 − 𝑐2 || = 0.3|𝑟1 − 𝑟2 | + 0.59|𝑔1 − 𝑔2 | + 0.11|𝑏1 − 𝑏2 |,
то получаются более подходящие оттенки.
Рисунок 7. Исходное изображение.
Рисунок 8. Изображение раскрашенное в 16 цветов методом k-means без учета
яркости.
Рисунок 9. Изображение раскрашенное в 16 цветов методом k-means с учетом
яркости.
Попробуем раскрасить это изображение в 16 цветов, используя k-means
кластеризацию, чтобы цвета были наиболее подходящие. В первом случае будем
использовать обычную цветовую метрику (Рисунок 8), а во втором с учетом яркости
(Рисунок 9).
Видно, что во втором случае оттенки и тени на холмах лучше повторяют исходное
изображение.
При запуске алгоритма с 𝜆 ≠ 0 необходимо определить пространственное
положение кластеров. Для этого сделаем один шаг алгоритма с 𝜆 = 0 и разобьем все
пиксели по цветам. Далее мы можем найти центр каждого кластера как среднее
арифметическое положений входящих в него точек.
Рассмотрим как меняется результат кластеризации при увеличения влияния
близости пикселей в пространстве.
Рисунок 10. Исходное изображение.
Рисунок 11. 20 кластеров, 𝝀 = 𝟎. 𝟐.
Рисунок 12. 20 кластеров, 𝝀 = 𝟎. 𝟒.
Рисунок 13. 20 кластеров, 𝝀 = 𝟎. 𝟔.
Рисунок 14. 20 кластеров, 𝝀 = 𝟎. 𝟔.
Mean shift
Фильтры зашумления.
Белый шум.
Пыль.
Соль и перец.
Морфологический анализ изображения.
Эрозия.
Дилатация.
Преобразования по изменению цветности.
Инверсия.
Download