Оглавление Линейные фильтры. ...........................................................................................................2 Mean фильтр. ..................................................................................................................2 Фильтр Гаусса. ................................................................................................................2 Фильтр LoG......................................................................................................................3 Motion blur. .....................................................................................................................4 Стохастические фильтры. ..................................................................................................7 Медианный фильтр. ......................................................................................................7 Сегментация. ......................................................................................................................7 k-means (k средних). ......................................................................................................8 Mean shift ......................................................................................................................13 Фильтры зашумления. .....................................................................................................14 Белый шум. ...................................................................................................................14 Пыль. .............................................................................................................................14 Соль и перец. ................................................................................................................14 Морфологический анализ изображения. ......................................................................14 Эрозия. ..........................................................................................................................14 Дилатация. ....................................................................................................................14 Преобразования по изменению цветности. ..................................................................14 Инверсия. ......................................................................................................................14 Линейные фильтры. Линейным фильтром называется такое преобразование изображения 𝑓, что для любых двух изображений 𝐴 и 𝐵 и любых констант 𝛼 и 𝛽 выполняется: 𝑓(𝛼𝐴 + 𝛽𝐵) = 𝛼𝑓(𝐴) + 𝛽𝑓(𝐵) Линейный фильтр можно представить через интеграл свертки: 𝑓(𝐴)(𝑥, 𝑦) = ∫ 𝐾(𝜉 , 𝜂)𝐴(𝑥 + 𝜉, 𝑦 + 𝜂)𝑑𝜉𝑑𝜂 , (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 – радиус (размер ядра фильтра) 𝜎 – дисперсия в ядре Гаусса. Пример: Рисунок 2. Применение фильтра LoG (r = 3, 𝛔 = 1) Motion blur. Motion blur применяется для создания эффекта движения. В результате применения этого фильтра в каждый пиксель изображения заменяется на среднее тех пикселей, которые пришли в эту точку в результате движения. Рисунок 3. Исходное изображение. Рисунок 4. Применение эффекта Motion blur c движением по прямой. Рассмотрим Motion blur в случае прямолинейного движения. Представлять фильтр в виде (2) неудобно потому что матрица будет очень большого размера, но сильно разреженной (там будут 1 только на траектории), поэтому будем действовать иначе. Зададим величину сдвига 𝑑 и скорость движения 𝑣 и время наблюдение движения 𝑑 𝑇. В каждый момент времени 𝑡𝑖 = 𝑖 𝑣 , 𝑖 ∈ 𝑁 к пикселю исходного изображения будем добавлять пиксель, который придет в него в данный момент времени. Когда пройдет время 𝑇, закончим итерации и поделим значение в точке на количество пикселей, пришедших в нее. Аналогично можно выполнить фильтр Zoom blur (движение от центра изображения к краям) и Spin blur (вращение изображения вокруг центра). Рисунок 5. Применение 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 итераций). Стохастические фильтры. Медианный фильтр. Медианный фильтр – это нелинейное преобразование изображения, в большинстве случаев применяющееся для удаления (или подавления) шумов. Основная идея этого фильтра состоит в том, чтобы заменить каждый пиксель медианой из набора его соседних элементов («шаблона»). Для этого необходимо отсортировать каждый такой набор и выбрать из него значение, стоящее на среднем месте (будем всегда брать шаблоны с нечетным числом элементов). Параметр фильтра – r (радиус), т.е. размер шаблона. Пример: Рисунок 6. Применение медианного фильтра (r = 2) к зашумленному изображению Сегментация. Сегментация – это процесс разделения пикселей изображения на несколько множеств (сегментов) для упрощения анализа изображения. Пиксели сегментов могут быть закрашены одним цветом, а могут просто получать метки. Сегментация, является частным случаем кластеризации данных (разбиение точек всего множества на некоторые подмножества по критерию близости в заданной метрике). Изображение можно представить как множество точек в пространстве 𝑅 5 , так каждый пиксель имеет две пространственные координаты и три цветовые. Так же можно использовать яркость и другие характеристики. Метрикой в таком пространстве может быть взвешенная сумма пространственных и цветовых метрик, например ||𝑃1 − 𝑃2 || = 𝜆||𝑟1 − 𝑟2 ||𝑝 + (1 − 𝜆)||𝑐1 − 𝑐2 ||𝑞 , 𝜆 ∈ [0; 1], 𝑝 ≥ 1, 𝑞 ≥ 1 Рисунок 7. Разные виды где 𝑟𝑖 , 𝑐𝑖 - пространственная и цветовая компоненты точки 𝑃𝑖 . Чаще всего применяются метрики с параметрами 1, 2, ∞ (Error! Reference source not метрик found.). Чем больше 𝑝 и 𝑞, тем большее количество точек считаются близкими. На рисунке видно, что площадь единичного шара растет с ростом параметра. Иногда применяются метрики с параметрами меньше 1. Сегментация изображения активно применяется в медицине, для определения по снимкам мест опухолей и патологий, в изучении объектов и местности спутниковым снимкам, в машинном зрении для распознавания объектов и человеческих лиц. k-means (k средних). Одним из наиболее популярных алгоритмов кластеризации является алгоритм kmeans. Базовый алгоритм выглядит так: 1. Выбрать k центров кластеров, случайно или на основании некоторой эвристики. 2. Поместить каждый пиксель изображения в кластер, центр которого ближе всего к этому пикселю. 3. Заново вычислить центры кластеров, усредняя все пиксели в кластере. 4. Повторять шаги 2 и 3 до сходимости (например, когда пиксели будут оставаться в том же кластере). Преимуществами это алгоритма является простота и гарантированная сходимость. Недостатки состоят в том, что необходимо знать заранее количество кластеров и их расположение и как следствие сильная зависимость алгоритма от начальных условий. Второй недостаток состоит в том, что алгоритм может сходиться не к оптимальному решению. Рисунок 8. Пример работы алгоритма для кластеризации точек в двумерном пространстве. Для применения этого алгоритма к задаче сегментации изображения можно взять следующую метрику: ||𝑃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 |, то получаются более подходящие оттенки. Рисунок 9. Исходное изображение. Рисунок 10. Изображение раскрашенное в 16 цветов методом k-means без учета яркости. Рисунок 11. Изображение раскрашенное в 16 цветов методом k-means с учетом яркости. Попробуем раскрасить это изображение в 16 цветов, используя k-means кластеризацию, чтобы цвета были наиболее подходящие. В первом случае будем использовать обычную цветовую метрику (Рисунок 10), а во втором с учетом яркости (Рисунок 11). Видно, что во втором случае оттенки и тени на холмах лучше повторяют исходное изображение. При запуске алгоритма с 𝜆 ≠ 0 необходимо определить пространственное положение кластеров. Для этого сделаем один шаг алгоритма с 𝜆 = 0 и разобьем все пиксели по цветам. Далее мы можем найти центр каждого кластера как среднее арифметическое положений входящих в него точек. Рассмотрим как меняется результат кластеризации при увеличения влияния близости пикселей в пространстве. Рисунок 12. Исходное изображение. Рисунок 13. 20 кластеров, 𝝀 = 𝟎. 𝟐. Рисунок 14. 20 кластеров, 𝝀 = 𝟎. 𝟒. Рисунок 15. 20 кластеров, 𝝀 = 𝟎. 𝟔. Рисунок 16. 20 кластеров, 𝝀 = 𝟎. 𝟔. Mean shift Фильтры зашумления. Белый шум. Пыль. Соль и перец. Морфологический анализ изображения. Эрозия. Дилатация. Преобразования по изменению цветности. Инверсия.