Использование ядер - также известных как сверточные матрицы или маски - неоценимо для обработки изображений. Такие методы, как размытие, обнаружение краев и заточка всех полагаются на ядра - малые матрицы чисел - применяются к изображению для обработки изображения в целом.

Итак, что такое ядро? При обработке изображений ядро представляет собой просто двумерную матрицу чисел. Хотя эта матрица может варьироваться в размерах, для простоты эта статья будет придерживаться трехмерных ядер. Пример ядра показан ниже:

0.111 0.111 0.111
0.111 0.111 0.111
0.111 0.111 0.111

3x3 симметричное ядро или матрица свертки.

Как эта матрица относится к обработке изображений? Изображение представляет собой просто двумерную матрицу чисел или пикселей. Каждый пиксель представлен числом - в зависимости от формата изображения эти цифры могут варьироваться: для 8-битного изображения RGB каждый пиксель имеет красный, зеленый и синий компоненты со значением от 0 до 255. Ядро работает, работая на эти значения пикселей, используя прямую математику для создания нового изображения. Давайте возьмем указанное выше ядро и сделаем некоторую математику: для каждого пикселя, центрируйте ядро по пикселю, умножьте значения ядра на значения соответствующих пикселей и добавьте результат - это конечное значение - новое значение текущего пикселя.

 

0.111 0.111 0.111
0.111 0.111 0.111
0.111 0.111 0.111

X

10 20 13
19 25 16
22 26 21

=

0.11 * 10 = 1 0.11 * 20 = 2 0.11 * 13 = 1
0.11 * 19 = 2 0.11 * 25 = 3 0.11 * 16 = 2
0.11 * 22 = 2 0.11 * 26 = 3 0.11 * 21 = 2
 

= 1 + 2 + 1 + 2 + 3 + 2 + 2 + 3 + 2 = 18

Пример операции с ядром.

По мере обработки каждого пикселя появляется новое изображение, основанное на вычисленных значениях. Новое изображение сильно зависит от используемого ядра - каждое ядро имеет определенные свойства в зависимости от его значений. Возьмем ядро, продемонстрированное выше: математика этой матрицы приводит к значению, которое является средним значением для всех пикселей в сетке 3 × 3 пикселей. Короче говоря, каждый пиксель является средним значением для его соседей - это приводит к размытому изображению.

Kernel blur mask

Немодифицировано (слева) и одно и то же изображение, обработанное локальным средним явлением размытия.

Какие существуют другие типы ядер?

Обнаружение кромок: это ядро обнаруживает ребра внутри изображения. Пример 3x3:

0 -1 0
-1 4 -1
0 -1 0

Обратите внимание, что если все значения пикселей сопоставимы, результирующее значение пикселя будет близким к 0. Однако края - места с экстремальными различиями в значениях пикселей - приведут к значениям, далеким от нуля.

Gaussian Blur: это ядро похоже на ядро размытия, представленное выше, но отличается тем, что оно зависит от функции Гаусса - функции, которая создает распределение значений вокруг центральной точки. Это приводит к ядру, в котором пиксели вблизи центра вносят больший вклад в новое значение пикселя, чем те, которые находятся дальше.

Sharpening: это ядро заостряет изображение - акцентируя края изображения. Резкость изображения добавляет контрастность к краям, а версия этой маски 3x3 похожа на ядро обнаружения края с центральным значением 5. Это добавляет контраст вокруг края, подчеркивая яркие и темные области.

Unsharp Mask: Используется для резкости изображения, этот метод основан на первом создании гауссовской размытой копии изображения. Эта размытая копия затем вычитается из оригинала - пиксели выше заданного порога затачиваются за счет усиления светлых и темных пикселей.

Конечно, мы не ограничены ядрами 3х3 - это было сделано только для простоты. Ядра могут быть любого размера. Более сложные ядра обычно больше, на самом деле многие пакеты программного обеспечения для обработки изображений имеют опции для настройки ядра. Например, Adobe Photoshop имеет параметр настраиваемого фильтра, позволяющий пользователю вводить собственные значения ядра (Filter->Other->Custom): 

Photoshop custom filter

Диалоговое окно настраиваемого фильтра в Adobe Photoshop, показывающее ядро обнаружения края.

Конечно, настройка ядра таким образом может потребовать много времени, проб и ошибок. Однако этот метод обеспечивает большую гибкость при создании новых способов обработки изображения или тонкой настройки старых хорошо установленных рабочих процессов.

По вопросам или комментариям к этой статье, пожалуйста, свяжитесь с Грегом Коупом.

777
Last Updated: 26/10/2017

Share:
Пока нет рейтинга

Popular Images  
Latest Images (ID)  
Top Rated Images