Это область математики. Большинство фильтров используют матрицу конволюции. С помощью фильтра «Матрица конволюции» можно создать фильтры на заказ.
Что же такое матрица конволюции? Её можно понять без применения мало знакомых инструментов математики. Конволюция - применение одной матрицы, называемой «ядром», на другую.
фильтр «Матрица конволюции» использует в качестве первой матрицы изображение, над которым производится работа. Изображение - двухмерное собрание пикселей в прямоугольных координатах. Используемое ядро зависит от желаемого эффекта.
GIMP uses 5×5 or 3×3 matrices. We will consider only 3×3 matrices, they are the most used and they are enough for all effects you want. If all border values of a kernel are set to zero, then system will consider it as a 3×3 matrix.
Фильтр изучает точку за точкой. Для каждой из них, называемой«начальной точкой», он умножает значение этой точки и значения восьми окружающих точек на соответствующие значения ядра. Затем он складывает результаты умножения и устанавливает эту сумму как новое значение начальной точки.
Простой пример:
Слева - матрица изображения: каждый пиксель помечен своим значением. У начального пикселя красная граница. В середине - ядро. Активная область ядра помечена зелёной границей. Справа - результат конволюции.
Произошло следующее: фильтр прочитал по-порядку, слева направо и сверху вниз, все точки активной области изображения. Потом он умножил значение каждой из них на соответствующие значения ядра и сложил результат: (100*0)+(50*1)+(50*0)+(100*0)+(100*0) +(100*0)+(100*0)+(100*0)+(100*0)+(100*0) = 50. Значение начальной точки стало 50. До этого, когда значение начальной точки было 50, оно стало 100, значение точки сверху (фильтр работает не над изображением, а над его копией). В результате, начальная точка продвинулся вниз.
Примечание | |
---|---|
Эти параметры описываются в Раздел 2, «Общие свойства». |
This is the 5×5 kernel matrix: you enter wanted values directly into boxes.
The result of previous calculation will be divided by this divisor. You will hardly use anything else than 1, which leaves results unchanged, and 9 or 25 according to matrix size, which gives the average of pixel values. The divisor can only be changed when Normalize is unchecked.
This value is added to the division result. This is useful if result may be negative. This offset may be negative. It can only be changed when Normalize is unchecked.
Here you can select which channels the filter should change.
При этом выборе, «Делитель» берёт результат конволюции. Если результат равен нулю (невозможно разделить на ноль), тогда он смещается на 128. Если результат отрицателен (отрицательный цвет невозможен) тогда он смещается на 255 (результат инвертируется).
Если этот параметр не выбран, фильтр не принимает во внимание прозрачность. Это может добавить нежелательных эффектов при размывке.
When the initial pixel is on a border, a part of the kernel is outside the image. You have to decide what the filter should do:
This part of the kernel is not taken into account.
Точки на границе не изменяются, а отрезаются от изображения.
This part of the kernel will be affected by pixels of the opposite border, so pixels disappearing from one side reappear on the other side.
Pixels on borders are changed to black.
Pixels on borders are changed to white.