8.2. Matriu de convolució

8.2.1. Panoràmica

Estem en el domini dels matemàtics. La majoria dels filtres utilitzen matrius de convolució. Amb aquest filtre es pot, amb imaginació, fer filtres personalitzats.

Què és una matriu de convolució? Podem fer una idea aproximada sense necessitat d'utilitzar eines matemàtiques que pocs coneixen. Convolució és el tractament d'una matriu per una altra anomenada matriu de nucli (kernel).

El filtre Matriu de convolució utilitza una primera matriu que és la imatge. La imatge és una col·lecció de píxels bidimensionals en unes coordenades 2D rectangulars, i un nucli variable segons l'efecte desitjat.

GIMP utilitza matrius de convolució 3x3 o 5x5. Ens limitarem a les matrius 3x3, les més utilitzades. Són suficients per a tots els efectes desitjats. Si totes els valors de la vora del nucli són a 0, el sistema considera que és una matriu de 3x3.

El filtre estudia successivament cada píxel de la imatge. Per cada píxel, el que anomenem píxel inicial, multiplica el valor d'aquest píxel i de cada un dels 8 píxels circumdants pel valor corresponent al nucli. Suma tots els resultats i el píxel inicial pren el valor del resultat final.

Un exemple simple:

A l'esquerra hi ha la matriu de la imatge: cada píxel està marcat amb el seu valor. El píxel inicial té una vermella. L'àrea d'acció del nucli té la vora verda. Al centre hi ha el nucli i a la dreta el resultat de la convolució.

Veiem el què passa: el filtre llegeix successivament d'esquerra a dreta i de dalt a baix, tots els píxels de l'àrea d'acció del nucli. Multiplica el valor de cada un d'ells pel valor corresponent al nucli i se sumen els resultats. El píxel inicial és de 42: (40*0)+(42*1)+(46*0) + (46*0)+(50*0)+(55*0) + (52*0)+(56*0)+(58*0) = 42 (el filtre no opera sobre la imatge sinó en una còpia). El resultat gràfic és un desplaçament cap avall del píxel inicial.

8.2.2. Activació del filtre

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

8.2.3. Opcions

Figura 17.150. Opcions de la Matriu de convolució

Opcions de la Matriu de convolució

Matriu

Aquesta és la matriu 5x5 del nucli que voleu crear: introduïu els valors desitjats directament a les caselles.

Divisor

El resultat del càlcul anterior es dividirà per aquest divisor. Difícilment s'utilitzarà 1, que permet un resultat sense canvis, i 9 o 25, segons la mida de la matriu, que dóna la mitjana dels valors del píxel.

Desplaçament

Aquest valor s'afegeix al resultat de la divisió. Això és útil si el resultat pot ser negatiu. El desplaçament pot ser negatiu.

Vora

Quan el píxel inicial està en una vora, una part del nucli està fora dels límits de la imatge. Cal decidir què ha de fer el filtre.

Des de l'esquerra: imatge d'origen, Estén, Ajusta i Escapça la vora

Estendre

Aquesta part del nucli no es té en compte.

Ajusta

Aquesta part del nucli estudiarà els píxels del cantó oposat, d'aquesta manera els píxels que desapareixen d'un cantó reapareixen per l'altre.

Escapça

Els píxels de la vora no es modifiquen, però s'escapcen.

Canals

Podeu seleccionar un o diversos canals en què treballarà el filtre.

Normalitza

Quan s'activa aquesta opció, el divisor pren el valor del resultat de la convolució. Si el resultat és 0 (no es pot dividir per 0), llavors s'aplica un desplaçament de 128. Si és negatiu (no es pot tenir un color negatiu), s'aplica un desplaçament de 255 (que inverteix el resultat).

Ponderació Alfa

Si aquesta opció no està marcada, el filtre no té en compte la transparència del color, això pot ser causa d'alguns artefactes quan s'aplica un difuminat.

8.2.4. Exemples

La creació de nuclis requereix coneixements matemàtics d'alt nivell. Però podeu trobar tot el que s'ha fet al web. Aquí teniu alguns exemples:

Figura 17.151. Augment del contrast

Augment del contrast
Augment del contrast

Figura 17.152. Difuminat

Difuminat
Difuminat

Figura 17.153. Reforçar les vores

Reforçar les vores
Reforçar les vores

Figura 17.154. Detecció de les vores

Detecció de les vores
Detecció de les vores

Figura 17.155. Repujat

Repujat
Repujat