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 tots 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 que 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.
Nota | |
---|---|
Aquestes opcions es descriuen a Secció 2, «Característiques comunes». |
Aquesta és la matriu 5x5 del nucli que voleu crear: introduïu els valors desitjats directament a les caselles.
El resultat del càlcul anterior es dividirà per aquest divisor. Difícilment utilitzareu 1 que permet resultats sense canvis, i 9 o 25 segons la mida de la matriu, que dóna la mitjana dels valors de píxels. El divisor només es pot canviar quan Normalitza està desmarcat.
Aquest valor s'afegeix al resultat de la divisió. Això és útil si el resultat pot ser negatiu. Aquest decalatge pot ser negatiu. Només es pot canviar quan Normalitza està desmarcat.
Here you can select which channels the filter should change.
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).
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.
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:
From left: source image, None border, Loop border, Clamp border
Aquesta part del nucli no es té en compte.
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.
Els píxels de la vora no es modifiquen, però s'escapcen.
Pixels on borders are changed to black.
Pixels on borders are changed to white.
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: