Ядро свертки
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
В цифровой обработке изображений ядро свёртки, маска, свёрточная матрица — матрица для размытия, выделения границ изображения и других эффектов. Данные эффекты достигаются путем свёртки ядра и изображения, где каждый пиксель интерпретируется как трёхмерный RGB-вектор.
Детали
правитьСвёртка ядра и изображения выражается формулой
,
где — изображение после применения свёртки, — ядро свёртки, — изначальное изображение, — произвольные границы свёртки. Стоит заметить, что операция будет применена в диапазоне от до и от до для координат и соответственно.
В зависимости от ядра, операция может создавать разные графические эффекты, такие как:
Операция | Ядро | Изображение |
---|---|---|
Тождественное отображение | ||
Выделение границ | ||
Резкость | ||
Размытие по Гауссу (3 х 3) | ||
Тиснение |
Алгоритм
правитьКаждый пиксель изображения, представляемый в виде вектора RGB-значений, умножается на ядро, после чего полученное значение вектора преобразуется в цвет, и устанавливается как пиксель нового изображения в соответствующих координатах. Данный алгоритм может быть выражен в виде псевдокода:
для каждой строки пикселей в изображении: для каждого пикселя строки в строке пикселей: переменная буфер = 0 для каждой строки элементов в ядре: для каждого элемента ядра в строке элементов: если позиция элемента ядра соответствует позиции пикселя строки тогда: умножить элемент ядра на пиксель строки добавить результат к буферу конецесли установить значение буфера в пиксель выходного изображения
Обработка краев
правитьПри применении алгоритма зачастую он предполагает наличие пикселей за границами изображений. В таком случае могут использоваться несколько методов для учёта этого случая:
- Расширение
- Краевые пиксели экстраполируются за границы изображения, чтобы предоставить значения для матрицы
- Зацикливание
- Пиксели для матрицы берутся с противоположного края, «зацикливая» изображение
- Обрезание
- Любой пиксель изображения, который предполагает выход матрицы за границы, пропускается. В таком случае размер конечного изображения отличен от размера изначального изображения
- Постоянное значение
- При выходе за границу используется постоянное значение цвета