Размытие по Гауссу
Размытие по Гауссу в цифровой обработке изображений — способ размытия изображения с помощью функции Гаусса, названной в честь немецкого математика Карла Фридриха Гаусса.
Этот эффект широко используется в графических редакторах для уменьшения шума изображения и снижения детализации. Визуальный эффект этого способа размытия напоминает эффект просмотра изображения через полупрозрачный экран, и отчётливо отличается от эффекта боке, создаваемого расфокусированным объективом или тенью объекта при обычном освещении.
Размытие по Гауссу также используется в качестве этапа предварительной обработки в алгоритмах компьютерного зрения для улучшения структуры изображения в различных масштабах.
Математическое описание
Применение размытия по Гауссу к изображению математически аналогично свёртке изображения с помощью функции Гаусса. Оно также известно как двумерное преобразование Вейерштрасса. Циклическая свёртка (т. е. круговое размытие по рамке), напротив, более точно воспроизводит эффект боке.
Поскольку преобразование Фурье функции Гаусса само является функцией Гаусса, применение размытия по Гауссу приводит к уменьшению высокочастотных компонентов изображения. Таким образом, размытие по Гауссу является фильтром нижних частот.
В этом способе размытия функция Гаусса (которая также используется для описания нормального распределения в теории вероятностей) используется для вычисления преобразования, применяемого к каждому пикселю изображения. Формула функции Гаусса в одном измерении:
- .
В двух измерениях это произведение двух функций Гаусса, по одной для каждого измерения:
где x, y — координаты точки, а σ — среднеквадратическое отклонение нормального распределения. При применении в двух измерениях эта формула даёт поверхность, контуры которой представляют собой концентрические окружности с нормальным распределением относительно центральной точки.
Значения этого распределения используются для построения матрицы свёртки, которая применяется к исходному изображению. Новое значение каждого пикселя устанавливается равным средневзвешенному значению окрестности этого пикселя. Значение исходного пикселя получает наибольший вес (имеющий наивысшее значение функции Гаусса), а соседние пиксели получают меньшие веса по мере увеличения их расстояния до исходного пикселя. Это приводит к размытию, которое сохраняет границы и края лучше, чем другие, более однородные фильтры размытия.
Теоретически функция Гаусса в каждой точке изображения будет отличной от нуля, а это означает, что в вычислении значения для каждого пикселя участвует всё изображение. На практике, при вычислении дискретного приближения функции Гаусса, пиксели на расстоянии более 3σ оказывают на него достаточно малое влияние, поэтому могут считаться фактически нулевыми. Таким образом, значения пикселей вне этого диапазона можно игнорировать. Обычно программе обработки изображений требуется лишь вычислить матрицу с размерами × (где — функция округления в большую сторону), чтобы гарантировать результат, достаточно близкий к результату, полученному с помощью полного распределения Гаусса.
Помимо круговой симметрии, размытие по Гауссу может применяться к двумерному изображению как два независимых одномерных вычисления, и поэтому оно является разделяемым фильтром. Это означает, что эффект от применения двумерной матрицы также может быть достигнут путём применения серии одномерных матриц в горизонтальном направлении с последующим повторением процесса в вертикальном направлении. С вычислительной точки зрения это полезное свойство, так как расчёт может быть выполнен за время , где h — высота, а w — ширина, в отличие от при использовании неразделимого ядра.
Применение последовательных размытий по Гауссу к изображению имеет тот же эффект, что и применение одного большего размытия по Гауссу, радиус которого является квадратным корнем из суммы квадратов фактически применённых радиусов размытия. Например, применение последовательных размытий по Гауссу с радиусами 6 и 8 даёт те же результаты, что и применение одного размытия по Гауссу с радиусом 10, поскольку . Из-за этой взаимосвязи время обработки не может быть сэкономлено путём имитации размытия по Гауссу последовательными более мелкими размытиями — необходимое время будет по крайней мере таким же, как и при выполнении одного большого размытия.
Размытие по Гауссу обычно используется при уменьшении размера изображения. При понижении частоты дискретизации изображения перед повторной дискретизацией к изображению обычно применяется фильтр нижних частот. Это необходимо для предотвращения появления ложной высокочастотной информации в субдискретизированном изображении (алиасинг). Размытие по Гауссу обладает хорошими свойствами, например, не имеет острых краёв и, следовательно, не вносит артефактов звона в отфильтрованное изображение.
Фильтр нижних частот
Размытие по Гауссу — это фильтр нижних частот, ослабляющий высокочастотные сигналы [3].
Его логарифмическая амплитудно-частотная характеристика (логарифмический масштаб в частотной области) представляет собой параболу.
Снижение дисперсии
Насколько сильно фильтр Гаусса со стандартным отклонением сгладит картинку? Другими словами, насколько это сглаживание уменьшит среднеквадратическое отклонение значений пикселей на картинке? Предположим, что значения пикселей в градациях серого имеют среднеквадратическое отклонение , следовательно после применения фильтра приведённое среднеквадратическое отклонение можно аппроксимировать следующим образом:
- .
Пример матрицы Гаусса
Эта матрица создаётся путем выборки ядра фильтра Гаусса (с σ = 0,84089642) в средних точках каждого пикселя с последующей нормализацией. Центральный элемент (4,4) имеет наибольшее значение, остальные элементы симметрично уменьшаются по мере увеличения расстояния от центра.
Элемент 0,22508352 (центральный) в 1177 раз больше, чем 0,00019117, который находится сразу за пределами 3σ.
Реализация
Эффект размытия по Гауссу обычно создаётся путём свёртки изображения ядром КИХ с использованием значений функции Гаусса.
На практике лучше всего использовать свойство разделяемости размытия по Гауссу, выполняя процесс за два прохода. На первом проходе используется одномерное ядро для размытия изображения только в горизонтальном или вертикальном направлении. Во втором проходе то же одномерное ядро используется для размытия в другом направлении. Результирующий эффект такой же, как при свёртке с двумерным ядром за один проход, но при этом требуется меньше вычислений.
Дискретность обычно достигается путём выбора дискретных точек, обычно в позициях, соответствующих центральным точкам каждого пикселя. Это позволяет снизить вычислительные затраты, но для очень маленьких ядер фильтров точечная выборка функции Гаусса с очень маленьким количеством выборок приводит к большой ошибке.
В этих случаях точность поддерживается (с небольшими вычислительными затратами) путем интегрирования функции Гаусса по площади каждого пикселя[4].
При преобразовании непрерывных значений функции Гаусса в дискретные значения, необходимые для ядра, сумма значений будет отличаться от 1. Это приведёт к потемнению или осветлению изображения. Чтобы исправить этот эффект, значения можно нормализовать, разделив каждый элемент в ядре на сумму всех элементов.
Эффективность КИХ снижается для высоких значений σ. Существуют альтернативы КИХ-фильтру. К ним относятся очень быстрое множественное размытие по рамке, быстрый и точный детектор границ БИХ Дерише, «стековое размытие» на основе размытии по рамке и многое другое[5].
Применение
Обнаружение краёв
Сглаживание по Гауссу обычно используется для обнаружения краёв. Большинство алгоритмов обнаружения краёв чувствительны к шуму. Двумерный фильтр Лапласа, построенный на основе дискретизации оператора Лапласа, очень чувствителен к шумной среде.
Использование фильтра размытия по Гауссу перед обнаружением краёв направлено на снижение уровня шума в изображении, что улучшает результат последующей работы алгоритма обнаружения краёв. Этот подход обычно называют лапласианом Гаусса или фильтрацией LoG[6].
Фотография
В цифровых камерах низкого класса, в том числе во многих камерах мобильных телефонов, обычно используется размытие по Гауссу, чтобы скрыть шум изображения, вызванный более высокой светочувствительностью ISO.
Размытие по Гауссу автоматически применяется как часть постобработки изображения с помощью программного обеспечения камеры, что приводит к необратимой потере деталей[7].
См. также
- Цифровой шум изображения
- Фильтр Гаусса
- Пирамида изображений
- Фильтр с бесконечной импульсной характеристикой (БИХ)
- Медианный фильтр
- Преобразование Вейерштрасса
Примечания
- Shapiro, L. G. & Stockman, G. C: "Computer Vision", page 137, 150{,} Prentice Hall, 2001
- Mark S. Nixon and Alberto S. Aguado. Feature Extraction and Image Processing. Academic Press, 2008, p. 88.
- R.A. Haddad and A.N. Akansu, "A Class of Fast Gaussian Binomial Filters for Speech and Image Processing," IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 39, pp 723-727, March 1991.
- Erik Reinhard. High dynamic range imaging: Acquisition, Display, and Image-Based Lighting. Morgan Kaufmann, 2006, pp. 233–234.
- Getreuer, Pascal (17 December 2013). “ASurvey of Gaussian Convolution Algorithms”. Image Processing on Line. 3: 286—310. DOI:10.5201/ipol.2013.87. (code doc)
- Fisher, Perkins, Walker & Wolfart. Spatial Filters - Laplacian of Gaussian . Дата обращения: 13 сентября 2010.
- Ritter. Smartphone-Kameras: Warum gute Fotos zu schießen nicht mehr ausreicht [Kommentar] (нем.). GIGA. GIGA Television (24 октября 2013). — «Bei Fotos, die in der Nacht entstanden sind, dominiert Pixelmatsch.». Дата обращения: 20 сентября 2020.
Ссылки
- GLSL реализация разделяемого фильтра размытия по Гауссу.
- Быстрое размытие по Гауссу Алгоритмы, Обработка изображений. 2012
- IIR Gaussian Blur Filter Implementation using Intel® Advanced Vector Extensions Brijender Bharti, 2015
- Пример размытия по Гауссу (фильтрация нижних частот), примененного к гравюре на дереве и травлению, чтобы удалить детали для сравнения изображений.
- Функция Mathematica GaussianFilter
- Функция OpenCV (C++) GaussianBlur