9.2. Matriz de convolución

9.2.1. Generalidades

Es un dominio de matemáticos. La mayoría de los filtros usan una matriz de convolución. Con el filtro «matriz de convolución», si tiene imaginación, puede crear filtros personalizados.

¿Que es una matriz de convolución? Es posible hacerse una idea sin usar las herramientas matemáticas que solo conocen unos pocos. Convolución es el tratamiento de una matriz por otra que se llama kernel.

El filtro matriz de convolución usa una primera matriz que es la imagen que será tratada. La imagen es una colección bidimensional de píxeles en coordenada rectangular. El kernel usado depende del efecto deseado.

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.

El filtro examina, sucesivamente, cada píxel de la imagen. Para cada uno de ellos, que se llamará píxel inicial, se multiplica el valor de este píxel y los valores de los 8 circundantes por el valor correspondiente del kernel. Entonces se añade el resultado, y el píxel inicial se regula en este valor resultante final.

Un ejemplo simple:

A la izquierda, la imagen de la matriz: cada píxel está marcado con su valor. El píxel inicial tiene un borde rojo. El área de acción del kernel tiene un borde verde. En el medio, el kernel, y a la derecha, el resultado de convolución.

Lo que sucede aquí: el filtro lee sucesivamente, de izquierda a derecha y de arriba a abajo, todos los píxeles del área de acción del kernel. Se multiplica el valor de cada uno de ellos por el valor correspondiente del kernel y se suman los resultados. El píxel inicial llega a 42: (40*0)+(42*1)+(46*0) + (46*0)+(50*0)+(55*0) + (52*0)+(56*0)+(58*0) = 42. (el filtro no trabaja sobre la imagen sino sobre una copia). Como resultado gráfico, el píxel inicial se movió un píxel hacia abajo.

9.2.2. Activating the Filter

This filter is found in the main menu under FiltersGenericConvolution Matrix….

9.2.3. Opciones

Figura 17.172. Opciones de Matriz de convolución

Opciones de “Matriz de convolución”

Presets, Input Type, Recortado, Blending Options, Preview, Merge filter, Split view
[Nota] Nota

Estas opciones se describen en la Sección 2, “Características comunes”.

Matriz

This is the 5×5 kernel matrix: you enter wanted values directly into boxes.

Divisor

El resultado del cálculo anterior se dividirá por este divisor. Difícilmente utilizará otro número que no sea 1, lo que deja los resultados sin cambios, y 9 o 25 según el tamaño de la matriz, que da la media de los valores de píxel. El divisor solo se puede cambiar cuando Normalizar no está marcado.

Desplazamiento

Este valor se suma al resultado de la división. Es útil si el resultado es negativo. Este desplazamiento puede ser negativo. Solo se puede cambiar cuando Normalizar no está marcado.

Canales

Here you can select which channels the filter should change.

Normalizar

Si esta opción está marcada, el divisor toma el valor resultante de la convolución. Si este resultado es cero (no es posible dividir por cero), se aplica un desplazamiento de 128. Si es negativo (un color negativo no es posible), se aplica un desplazamiento de 255 (se invierte el resultado).

Ponderar con alfa

Si esta opción no está marcada, el filtro no tiene en cuenta la transparencia y esto puede producir algunos artefactos cuando se desenfoca.

Borde

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:

Figura 17.173. Border examples

Border examples

Source image

Border examples

None border

Border examples

Clamp border

Border examples

Loop border


None

This part of the kernel is not taken into account.

Clamp

Los píxeles sobre los bordes no se modifican, pero sí se recortan.

Loop

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.

Black

Pixels on borders are changed to black.

White

Pixels on borders are changed to white.

9.2.4. Ejemplos

El diseño de kernel se basa en conocimientos matemáticos altos. Puede encontrar kernels preconfeccionados en la web. Ahora unos pocos ejemplos:

Figura 17.174. Enfocar

Enfocar
Enfocar

Figura 17.175. Desenfoque

Desenfoque
Desenfoque

Figura 17.176. Realzar bordes

Realzar bordes
Realzar bordes

Figura 17.177. Detectar bordes

Detectar bordes
Detectar bordes

Figura 17.178. Repujado

Repujado
Repujado