5.2. Matriz de convolución

Historial de revisiones
Revisión $Revision: 2478 $ 2007-08-23 AntI

5.2.1. Generalidades

Puede encontrar este filtro en FiltrosGenéricoMatriz de convolución

Un dominio de matemáticos. La mayoria de los filtros usan matriz de convolución. Con este filtro, se pueden crear filtros personalizado.

¿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 rectágular. El kernel usado depende del efecto deseado.

El GIMP usa matrices 5x5 o 3x3. Consideraremos solo las matrices 3x3, son las más usadas y son suficiente para los efectos deseados. Si todos los valores de un kernel se seleccionan a cero, el sistema la considerará como una matriz 3x3.

El filtro examina, sucesivamente, cada píxel de la imagen. Para cada uno de ellos, que llamaremos “píxeles iniciales”, se multiplica el valor de este píxel y el valor 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: 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: (100*0)+(50*1)+(50*0)+(100*0) +(100*0)+(100*0)+(100*0)+(100*0)+(100*0)+(100*0) = 50. El píxel inicial asumió el valor 50. Previamente, cuando el píxel inicial tenía el valor=50, tomó el valor 100 del píxel de arriba (el filtro no trabaja sobre la imagen sino sobre una copia) y de esta manera desapareció en el fondo de píxeles a "100". Como resultado gráfico, el píxel inicial se movió un píxel hacia abajo.

5.2.2. Opciones

Figura 14.43. Opciones del filtro “Matriz de convolución

Opciones del filtro Matriz de convolución

Matriz

Es una matriz kernel de 5x5: el valor se introduce directamente en las cajas.

Divisor: El resultado del cálculo previo será dividido por este divisor. Dificilmente usará 1, que no variará el resultado, y 9 o 25 según el tamaño de la matriz, que da la media del valor del píxel.

Desplazamiento: este valor se suma al resultado de la división. Es útil si el resultado fuese negativo. Este desplazamiento puede ser negativo.

Borde

Extender, Ajustar, Recortar

Cuando el píxel inicial está sobre un borde, una parte del kernel se situa fuera de la imagen. Puede decidir que filtro usar:

  • Extender: esta parte del kernel no se tiene en cuenta.

  • Ajustar: esta parte del kernel examinará los píxeles del borde opuesto, así que los píxeles desaparecidos por un lado reaparecen por el otro lado.

  • Recortar: los píxeles sobre los bordes no se modifican, pero se recortan.

Canales

Puede seleccionar uno o varios canales con los que trabajará el filtro.

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 cunado se desenfoca.

5.2.3. 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 14.44. Enfocar

Enfocar
Enfocar

Figura 14.45. Desenfoque

Desenfoque
Desenfoque

Figura 14.46. Realzar bordes

Realzar bordes
Realzar bordes

Figura 14.47. Detectar bordes

Detectar bordes
Detectar bordes

Figura 14.48. Repujado

Repujado
Repujado