7.2. Матрица конволюции

7.2.1. Общая информация

Этот фильтр находится в ФильтрыОбщиеМатрица конволюции.

Это область математики. Большинство фильтров используют матрицу конволюции. С помощью фильтра «Матрица конволюции» можно создать фильтры на заказ.

Что же такое матрица конволюции? Её можно понять без применения мало знакомых инструментов математики. Конволюция - применение одной матрицы, называемой «ядром», на другую.

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

GIMP использует матрицы 5x5 или 3x3. Матрица 3x3 - наиболее часто используемая, и её достаточно для большинства эффектов. Если значения по краям ядра обнулить, GIMP будет считать его как матрицу 3x3.

Фильтр изучает пиксель за пикселем. Для каждого из них, называемого «начальным пикселем», он умножает значение этого пикселя и значения восьми окружающих пикселей на соответствующие значения ядра. Затем он складывает результаты умножения и устанавливает эту сумму как новое значение начального пикселя.

простой пример:

Слева - матрица изображения: каждый пиксель помечен своим значением. У начального пикселя красная граница. В середине - ядро. Активная область ядра помечена зелёной границей. Справа - результат конволюции.

Произошло следующее: фильтр прочитал по-порядку, слева направо и сверху вниз, все пиксели активной области изображения. Потом он умножил значение каждого из них на соответствующие значения ядра и сложил результат: (100*0)+(50*1)+(50*0)*(100*0)+(100*0) +(100*0)+(100*0)+(100*0)+(100*0)+(100*0) = 50. Значение начального пикселя стало 50. До этого, когда значение начального пикселя было 50, оно стало 100, значение пикселя сверху (фильтр работает не над изображением, а над его копией). В результате, начальный пиксель продвинулся вниз.

7.2.2. Параметры

Матрица

Это и есть матрица ядра 5x5: желаемые значения заполняются прямо в вводные поля.

Делитель: результат предыдущих вычислений будет разделен на этот делитель. Значение 1 оставляет результат как есть, 9 и 25, в зависимости от размера матрицы, даёт среднее значение пикселей.

Смещение : это значение добавляется к результату деления. Это полезно, когда результат отрицателен. Смещение может быть отрицателеным.

Граница

Источник добавить, завернуть, отрезать

Когда начальный пиксель находится на границе, часть ядра находится вне изображения. Существует три варианта действия:

  • Добавить: эта часть ядра не принимается во внимание.

  • Завернуть: эта часть ядра возмёт пиксели на противоположной стороне изображения. Пиксели, пропадающие на одной стороне, появляются на другой.

  • Отрезать: пиксели на границе отрезаются от изображения.

Каналы

Выбор каналов, над которыми фильтр будет работать.

Автоматический

При этом выборе, «Делитель» берёт результат конволюции. Если результат равен нулю (невозможно разделить на ноль), тогда он смещается на 128. Если результат отрицателен (отрицательный цвет невозможен) тогда он смещается на 255 (результат инвертируется).

Доля альфы

Если этот параметр не выбран, фильтр не принимает во внимание прозрачность. Это может добавить нежелательных эффектов при размывке.

7.2.3. Примеры

Создание ядер базируется на высшей математике. Готовые ядра находятся на веб. Вот несколько примеров:

Рисунок 8.69. Увеличить контраст

Увеличить контраст
Увеличить контраст

Рисунок 8.70. Размыть

Размыть
Размыть

Рисунок 8.71. Усилить край

Усилить край
Усилить край

Рисунок 8.72. Найти край

Найти край
Найти край

Рисунок 8.73. Придать рельеф

Придать рельеф
Придать рельеф