Billedmanipulation - Filtre via foldningsmatricer

En stor del af de billedmanipulationer der findes består i filtre, der foretager en ændring af alle pixels i et billede. - Vil man for eksempel lysne et billede, så skal man for hver pixel have udregnet en ny og højere værdi. Men de fleste filtre benytter dog også de omkringliggende pixels værdi til at udregne de nye pixelværdier. - Eksempelvis kan man sløre et billede ved at sætte den ny pixelværdi til at være et gennemsnit af dens eget og de omkringliggende pixels værdier. Strategien med at udregne nye pixelværdier ud fra omkringsliggende pixels ligger bag en lang række filtre som Blur, Sharpning, Emboss, Enlightment m.fl og kan beskrives og implementeres i en foldningsmatrix.

Foldningsmatrix

Udgangspunkt

0 0 0
0 1 0
0 0 0

Sharpen

0 -1 0
-1 5 - 1
0 - 1 0

I billedbehandling bruges en foldningsmatrix til at beskrive, i hvilken grad en pixels nye værdi skal påvirkes af de omgivende. Den består i sin mest enkle form af 9 felter, hvor det midterste felt repræsenterer den aktuelle pixel, mens nabofelterne repræsenterer hver nabopixel.

Tallet i hvert felt er en "vægt" der angiver, hvor mange gange den enkelte pixels værdi skal indgå i ny værdi for den midterste pixel. - Skal filteret ikke gøre noget sættes en pixels egen værdi til at indgå én gang, mens de omkringstående sættes til 0, da de slet ikke skal bruges.

Den mest enkle operation er at formørke eller lysne et billede, hvor det kun er den enkelte pixels egen værdi der skal øges eller sænkes. - En lysning af billede kunne som i eksempelet bestå i at sætte det midterste felt til en faktor 2, så hver pixel i billedet får fordoblet sin værdi.

Foldningsmatrixen kommer dog først til sin ret, når der beskrives ændringer af en pixel ud fra værdier i nabopixel. Vægten kan sættes til både positive og negative tal. I eksemplet til højre femdobles pixlens egen værdi, men fratrækkes herefter værdien af de fire nærmeste pixels. Effekten er at en eventuel forskel øges, så der sker en skærpning af kontrasten mellem værdierne i de enkelte pixels.

Ønsker man samme lysstyrke i resultatet, så skal den samlede sum i foldningsmatrix være en faktor 1. I GIMP er foldningsmatrixen dog suppleret med en divisor - udligningsfaktor - til at justere et resultats lysstyrke op eller ned. Det er brugt i sløringsfiltret til højre, hvor hver pixel sættes til et gennemsnit af de nærmeste pixel. Men læg mærke til, at divisor ikke er nødvendig, da man i stedet kunne have skrevet 0,2 i alle felter med samme resultat. Divisoren gør det først og fremmest enklere at prøve sig frem.

Lysning

0 0 0
0 2 0
0 0 0

Blur

0 1 0
1 1 1
0 1 0

Divisor = 5

Find ud af, hvilket navn der hører til hver af nedenstående foldningsmatricer:
Edge detection/Kantfremhævning - Darkning/Formørkning - Emboss/Prægning

0 0 0
0 0,5 0
0 0 0
0 -1 0
-1 4 -1
0 -1 0
-2 -1 0
-1 1 1
0 1 2

Udvikling og implementering

Det er ganske enkelt at læse, hvordan den ny værdi skal udregnes, straks sværere er det at se, hvilken effekt det vil have for billedet og endnu sværere er det at udvikle ny filtre. Udviklingen sker derfor i reglen i trin, hvor man starter med simple filtre der udvides og kombineres til de avancerede billedfiltre der er i billedbehandlingsprogrammerne. I mange billedebehandlingsprogrammer kan man implementere egne filtre som foldningsmatricer:

  • GIMP : Filtre - Generel - Convolution-matrix
  • Inkscape: Filters - Filter editor - Add effect - Convolve Matrix

De simple filtre der er gennemgået her bruger kun de nærmeste pixels og beskrives derfor i foldningsmatrix der er 3x3. Men der intet i vejen for også at inddrage "genboer", så foldningsmatrixen er 5x5. Det er dog enkelt at implementere filtrene her på siden, da man blot sætter de yderste felter til en faktor 0.

Manipuler et foto (b-niveau)

Tag et foto, som du selv har taget og afprøv matrix-filtrene i Gimp, som du eksperimenterede med i billedfilterprogrammet:

  1. Blur
  2. Edge detect
  3. Sharpen
  4. Emboss

Eget billedfilter (b-niveau)

Tag samme foto og design dit eget filter. Hvis du ikke kan finde på noget, så kan du anvende flere sammensatte effekter (billedfiltre).

Billedfilterapp
Eksperimenter med matrix-filtre - felternes værdier vises her i %.


Medmindre andet er angivet, er indholdet af denne side licenseret under Creative Commons Attribution-NonCommercial 3.0 License