Gaussian Blur
Гауссово размытие — это фильтр сглаживания изображения, который снижает шум и убирает мелкие детали за счёт взвешенного усреднения пикселей; его применяют в компьютерном зрении и предварительной обработке данных.
Гауссово размытие — это метод сглаживания изображения, при котором каждый пиксель заменяется взвешенным средним значением соседних пикселей, причём ближайшие соседи имеют больший вес. Веса соответствуют колоколообразному гауссовому распределению, создавая мягкое размытие, которое снижает шум и убирает мелкие детали. Этот метод также называют гауссовым сглаживанием; его широко используют в компьютерном зрении и при предварительной обработке данных, чтобы подготовить изображения к анализу.
Как работает гауссово размытие#
Фильтр перемещает по изображению небольшую сетку весов, называемую ядром. В каждой позиции значения соседних пикселей умножаются на соответствующие веса, а результаты складываются. Эта операция называется свёрткой. Сумма весов равна единице, поэтому пиксель не меняется, если яркость всех пикселей, попавших в ядро, одинакова. Гауссово размытие действует как фильтр нижних частот: оно подавляет быстрые изменения значений соседних пикселей, включая шум, текстуру и резкие границы.
Результат определяют два параметра. Сигма — стандартное отклонение гауссова распределения — задаёт ширину распределения весов; при увеличении сигмы сглаживание становится сильнее. Размер ядра определяет, какая часть окружающего изображения будет учтена. В более крупном ядре помещается более широкое гауссово распределение, а слишком маленькое ядро обрезает его края. Радиус ядра — это расстояние от центра до края ядра: при радиусе в три пикселя ширина ядра составляет семь пикселей.
У границ изображения часть ядра выходит за пределы доступных пикселей. Отражение изображения продлевает содержимое соседних областей; заполнение недостающей области нулями добавляет тёмные значения, которые могут затемнить границу. Поэтому способ обработки границ влияет на результат фильтрации вблизи краёв изображения.
Применение в компьютерном зрении и машинном обучении#
Гауссово сглаживание помогает выполнять извлечение признаков, задавая пространственный масштаб анализа структуры изображения. Многоуровневое применение этого метода восходит к работам Тайдзо Иидзимы по гауссовому пространству масштабов 1959–1962 годов, заложившим основы представления изображений с разной степенью размытия.
В реализации детектирования границ Канни в scikit-image гауссово сглаживание снижает шум перед оценкой градиента с помощью оператора Собеля. Без сглаживания шум вызывает дополнительные изменения интенсивности, которые мешают обнаруживать границы объектов. Увеличение масштаба сглаживания также удаляет мелкие границы и меняет то, какие контуры сохраняются при детектировании.
При сегментации изображений документов локальные средние значения с гауссовыми весами используются для адаптивной пороговой обработки. Для каждого пикселя порог вычисляется как взвешенное среднее значение в его окрестности за вычетом смещения. Это позволяет отделить текст от фона при неравномерном освещении, например при локальной пороговой обработке отсканированной страницы.
В качестве аугментации данных гауссово размытие создаёт смягчённые версии обучающих изображений, сохраняя координаты ограничивающих рамок и ключевых точек. Ultralytics YOLO поддерживает A.GaussianBlur с помощью пользовательских преобразований Albumentations, позволяя добавить контролируемое изменение степени размытия при обучении YOLO26.
Сравнение гауссова размытия с другими фильтрами#
Выбор метода сглаживания определяет, какая информация изображения сохранится:
- Усредняющее размытие, также называемое прямоугольным размытием, присваивает всем пикселям в окне одинаковый вес. Гауссово размытие придаёт больший вес ближайшим пикселям, создавая более плавно взвешенное среднее значение.
- Медианное размытие заменяет пиксель медианным значением в его окрестности. Оно особенно эффективно против импульсного шума — отдельных ярких и тёмных пикселей.
- Двусторонняя фильтрация использует и пространственное расстояние, и сходство интенсивности, чтобы снижать шум, сохраняя резкие границы. Гауссово размытие учитывает только положение пикселей, поэтому оно также смягчает границы.
Применение гауссова размытия в Python#
OpenCV предоставляет cv2.GaussianBlur для гауссова сглаживания. Установи пакет Python с помощью pip install opencv-python, а затем сохрани сравнение изображений рядом:
from urllib.request import urlopen
import cv2
import numpy as np
with urlopen("https://ultralytics.com/images/bus.jpg") as response:
image_bytes = np.frombuffer(response.read(), dtype=np.uint8)
image = cv2.imdecode(image_bytes, cv2.IMREAD_COLOR)
blurred = cv2.GaussianBlur(image, (15, 15), sigmaX=3)
comparison = cv2.hconcat([image, blurred])
cv2.imwrite("gaussian_blur_comparison.jpg", comparison)На сохранённом изображении исходное изображение расположено слева, а сглаженный результат — справа. Для ядра размером 15 x 15 используется сигма в три пикселя в обоих направлениях, поскольку пропущенный аргумент sigmaY принимает значение sigmaX.
Гауссовы ядра сепарабельны: соответствующее двумерное размытие можно получить с помощью одномерных горизонтального и вертикального фильтров. Для ядра 7 x 7 это сокращает число операций умножения на веса ядра для каждого пикселя с 49 до 14.










