Statistiek in de digitale beeldverwerking

Ignace Van de Woestyne

  1. Inleiding
  2. Wanneer we spreken over statistiek en meerbepaald beschrijvende statistiek denken we meestal aan steekproeven die een aantal waarnemingen opleveren. We kunnen deze waarnemingen op een overzichtelijke wijze voorstellen in grafieken, een aantal bijzondere kengetallen zoals het gemiddelde en de standaardafwijking berekenen en op basis hiervan bepaalde uitspraken doen. Heel wat praktische situaties, ondermeer in een economische context, zijn er te bedenken waarin deze werkwijze kan worden toegepast.

    Beschrijvende statistiek heeft echter veel meer toepassingen dan deze zojuist vermeld. Wanneer we statistische technieken immers toepassen op digitale beelden kunnen we het effect ervan "visualiseren". Zonder het te beseffen passen we, wanneer we een "grafische editor" gebruiken om bijvoorbeeld gescande foto’s te bewerken, statistische technieken toe. Het doel van deze module is dan ook stil te staan bij een aantal van deze technieken. Een beter inzicht in de onderliggende methode zal ook aanleiding geven tot een efficiënter gebruik van sommige van de mogelijkheden van grafische editors.

  3. Wat is een digitaal beeld?
  4. Een digitaal beeld is eigenlijk niets anders dan een matrix van beeldpuntjes (pixels) die elk een bepaalde kleur hebben. Met de resolutie van een digitaal beeld wordt de afmeting van het digitale beeld bedoeld (breedte x hoogte). Hieronder zie je een voorbeeld van een digitaal beeld, waarbij zeer duidelijk de pixels te onderscheiden zijn.

    Figuur 1: Voorbeeld van een digitaal beeld

    Het spreekt voor zich dat hoe groter de resolutie is, hoe "scherper" het beeld zal zijn, hoe meer details het kan bevatten. Aangezien elk beeldpunt in een bepaalde kleur kan gezet worden is het ook noodzakelijk te weten hoe computers omspringen met kleuren. Elke voor het menselijk oog zichtbare kleur kan worden samengesteld uit de drie basiskleuren rood, groen en blauw. Hiertoe wordt optische kleurmenging, ook wel bekend als de additieve kleurmenging gebruikt om tot een welbepaalde kleur te komen. Rood, groen en blauw bijvoorbeeld in volle intensiteit gemengd levert wit licht als resultaat op. Andere kleuren die direct uit de basiskleuren (in volle intensiteit) kunnen worden afgeleid vind je in figuur 2. De additieve mengmethode wordt ondermeer toegepast in kleurentelevisies en computer-monitoren.

    Figuur 2: Additieve kleurmenging

    De intensiteit (helderheid) van een bepaalde basiskleur kunnen we weergeven door een getal. Aangezien we met beelden te maken hebben die door computers moeten kunnen worden verwerkt, ligt het voor de hand per basiskleur hiervoor één byte (d.w.z. een getal tussen 0 en 255) te nemen. De waarde 0 komt overeen met zwart, terwijl de waarde 255 overeenstemt met de volle intensiteit van de respectievelijke basiskleur. Concreet kunnen we dus elke kleur bepalen door 3 bytes op te geven. De kritische lezer zal opmerken dat hiermee niet "alle" kleuren kunnen worden weergegeven. Dit is inderdaad correct, maar met 3 bytes kunnen we in totaal 224 = 16.777.216 mogelijke kleuren weergeven, wat meer is dan het aantal dat het menselijk oog kan onderscheiden. We spreken ook wel van 24bits-kleuren of "ware kleuren".

    In de volgende tabel vind je de binaire voorstelling van een aantal kleuren.

    Kleur R G B Binair Hexadecimaal Decimaal
    Rood 255 0 0 000000000000000011111111 0000FF 255
    Groen 0 255 0 000000001111111100000000 00FF00 65280
    Blauw 0 0 255 111111110000000000000000 FF0000 16711680
    Cyaan 0 255 255 111111111111111100000000 FFFF00 16776960
    Magenta 255 0 255 111111110000000011111111 FF00FF 16711935
    Geel 255 255 0 000000001111111111111111 00FFFF 65535
    Wit 255 255 255 111111111111111111111111 FFFFFF 16777215

    Hierbij is ook de voorstelling in het binaire en het hexadecimale stelsel (16-delig stelsel) weergegeven. Het hexadecimale stelsel is bijzonder geschikt voor het voorstellen van kleuren. In dit stelsel zijn er 16 "cijfers" voorhanden aangegeven met 0, 1, 2, ..., 9, A, B, C, D, E en F. Het getal FF in het hexadecimale stelsel komt dus overeen met 15x16+15=255.

    Om een idee te krijgen van de geheugencapaciteit die nodig is om een digitaal beeld bij te houden dienen we het aantal beeldpunten te vermenigvuldigen met 3 bytes. Voor een volledig beeldscherm met een resolutie van 800x600 beeldpunten zijn dus 1.440.000 bytes nodig. Volledigheidshalve merk ik wel op dat er compressietechnieken bestaan die toelaten een beeld op te slaan met minder bytes. We gaan hier echter niet verder op in.

    Steunend op het voorgaande kunnen we een digitaal beeld ook zien als een verzameling van 3 matrices met dezelfde afmetingen. In de eerste matrix worden de roodintensiteiten weergegeven terwijl in de twee andere resp. de groen- en blauwintensiteiten voorkomen. We spreken ook wel van de drie kleurenvlakken. Deze voorstellingswijze is de wijze waarop we in wat volgt een digitaal beeld zullen gebruiken. Statistische bewerkingen zullen immers op de drie matrices worden toegepast.

    Hieronder zie je de resp. rood-, groen- en blauwvlakken van het beeld in figuur 2. Zij kunnen beschouwd worden als de filtering van het originele beeld met resp. een rood-, groen- en blauwfilter. Met het programma BeeldStat kan deze filtering eenvoudig uitgevoerd worden.

    Figuur 3: Het rood-vlak van figuur 2

    Figuur 4: Het groen-vlak van figuur 2

    Figuur 5: Het blauw-vlak van figuur 2

  5. Statistische kengetallen
  6. Veronderstel dat we n discrete gegevens of waarnemingen hebben, voorgesteld door X1, X2, ..., Xn. Veronderstel dat we verder de getallen a1, a2, ..., an hebben. Dan zeggen we dat de gewogen som van de waarnemingen X1, X2, ..., Xn met de resp. gewichten a1, a2, ..., an gegeven wordt door . Het gewone rekenkundige gemiddelde wordt gedefinieerd als . We kunnen het gewone rekenkundige gemiddelde dus beschouwen als een gewogen som waarbij de gewichten voor elke waarneming dezelfde is, namelijk . Met het gewogen gemiddelde van de waarnemingen X1, X2, ..., Xn met de resp. gewichten a1, a2, ..., an wordt bedoeld. Merk op dat een gewogen gemiddelde maar kan berekend worden indien . Door een gewogen gemiddelde te gebruiken kan een bepaalde waarneming geaccentueerd worden. Daartoe kent men aan deze variabele een groter gewicht toe.

    De variantie van de waarnemigen X1, X2, ..., Xn wordt gedefinieerd door . We merken hierbij op dat het geheel van de waarnemingen als de statistische populatie beschouwd wordt. Hiermee is de hier gehanteerde definitie in overeenstemming met de definitie van de populatievariantie.

    Met de mediaan van de waarnemingen X1, X2, ..., Xn wordt die waarneming bedoeld die zich halverwege bevindt in de rij van de in stijgende volgorde gerangschikte waarnemingen. Deze middelste waarneming bestaat zeker indien het aantal waarnemingen oneven is. Indien het aantal waarnemingen even is neemt men als mediaan het rekenkundig gemiddelde van de twee middelste waarnemingen.

    Indien we de verschillende waarden die voorkomen onder de waarnemingen X1, X2, ..., Xn voorstellen door x1, x2, ..., xk met , kunnen we tellen hoeveel maal elke waarde voorkomt. Dit aantal bepaalt de absolute frequentie. Wanneer we absolute frequentie grafisch voorstellen (de waarden x1, x2, ..., xk op de X-as en de frequenties op de Y-as) spreken we van een staafdiagram.

    Hieronder zien we een toepassing gemaakt met het programma BeeldStat van de bovenstaande definities. We vertrekken van een digitaal beeld van de aarde (figuur 6).

    Figuur 6: De aarde

    Het rood-, groen- en blauw-vlak bestaat uit getallen gelegen tussen 0 en 255 zoals we reeds zagen. We kunnen deze dus als waarnemingen beschouwen, de bovenstaande kengetallen en het staafdiagram van de absolute frequenties van de drie vlakken berekenen.

  7. Het verwijderen van "ruis" uit digitale beelden
  8. Digitale beelden bevatten soms beeldpunten (meestal geïsoleerde punten) waarvan de kleur niet overeenstemt met de werkelijke kleur. Ze zijn veel donkerder of lichter dan wat ze moeten zijn. Deze "vlekjes" noemt men ruis en kunnen bijvoorbeeld ontstaan zijn bij het scannen van het origineel of bij het verliezen van informatie bij doorsturen via een communicatiemiddel (een radiotransmissie bijvoorbeeld). De begrippen die we in het vorige deel gezien hebben laten toe de ruis uit een beeld gedeeltelijk te verwijderen of te verminderen. De in de praktijk veelgebruikte technieken zullen we nu achtereenvolgens bespreken en voorbeelden hiervan geven.

    4.1. Verminderen van ruis m.b.v. het gemiddelde

    Van het originele digitale beeld met ruis nemen we om te beginnen het roodvlak. Hierover laten we een matrix (die we in wat volgt "venster" zullen noemen) schuiven waarvan we gemakkelijkshalve veronderstellen dat de breedte en de hoogte hetzelfde oneven getal b zijn. De beginpositie van het venster is linksbovenaan. Vervolgens berekenen we het rekenkundig gemiddelde van de roodintensiteiten van de beeldpunten die zich binnen het venster bevinden en nemen deze waarde (eventueel afgerond) als intensiteit voor één beeldpunt in het nieuw te maken digitale beeld. Wanneer dit gedaan is verschuiven we het venster één positie naar rechts en doen weerom hetzelfde. Zo tasten we het volledige originele beeld af en creëren een nieuw beeld. Merk op dat een rand, waarvan de dikte gelijk is aan , hierbij niet kan verwerkt worden, omdat deze nooit in het midden van het venster terecht komt. Wanneer deze operatie voltooid is voor het roodvlak, herhalen we ze voor het groen- en het blauwvlak. Tot slot worden de drie vlakken samengevoegd om zo het nieuwe kleurbeeld te verkrijgen. Hieronder zien we een voorbeeld van deze uitmiddeling waarbij een 5x5-venster gebruikt werd.

    Figuur 7: Beeld voor verwerking

    Figuur 8: Beeld na verwerking

    Zoals we kunnen zien is de ruis die aanwezig was in figuur 7 merkelijk verminderd. Als nadeel stellen we wel vast dat deze uitmiddeling de randen van objecten vervaagt. Het resultaat ziet er minder scherp uit als het origineel.

    De methode die hierboven beschreven is kan ook worden toegepast met een gewogen gemiddelde in de plaats van het gewone rekenkundige gemiddelde. We associëren daartoe aan elke positie in het venster een gewicht (positief getal). Deze vormen de ai’s uit de formule van het gewogen gemiddelde. Hieronder is een voorbeeld waarbij het volgende venster gebruikt werd:

    10 5 1 5 10
    5 0 0 0 5
    1 0 1 0 1
    5 0 0 0 5
    10 5 1 5 10

    Figuur 9: Beeld voor verwerking

    Figuur 10: Beeld na verwerking

    4.2. Verminderen van ruis m.b.v. de mediaan

    Indien we de methode die in 4.1 beschreven is toepassen op een beeld maar we gebruiken de mediaan in de plaats van het gemiddelde, verkrijgen we doorgaans een iets beter resultaat. D.w.z. dat het eindresultaat iets scherpere randen heeft dan het geval is bij het gebruik van het gemiddelde, terwijl toch de ruis aanzienlijk verminderd is. Ter illustratie geven we hieronder een voorbeeld.

    Figuur 11: Beeld voor verwerking

    Figuur 12: Beeld na verwerking

    4.3. Verminderen van ruis m.b.v. de Kuwahara-filter

    Een methode die meestal een nog beter resultaat oplevert dan de twee voorgaande, maar heel wat meer rekenwerk vraagt en dus merkelijk trager is, is de Kuwahara-methode. Randen zijn zeer belangrijk bij het waarnemen van beelden door het menselijk brein. De Kuwahara-methode zorgt er dan ook voor dat randen vrij intact gelaten worden, terwijl er tussenin wordt uitgemiddeld. De methode vertrekt van een 5x5-venster dat net zoals bij de vorige methodes over het oorspronkelijke beeld schuift. Dit venster wordt echter opgedeeld in 4 gebieden van 3x3, nl. linksboven, rechtsboven, linksonder en rechtsonder (zie figuur 13).

    Figuur 13: De vier gebieden in de Kuwahara-filter

    Voor elk gebied wordt het rekenkundig gemiddelde berekend van de onderliggende intensiteiten en de standaardafwijking ervan. In het nieuwe beeld wordt de gemiddelde intensiteit ingevuld van dat gebied met de kleinste standaardafwijking. Het is duidelijk dat deze methode heel wat meer rekenwerk vraagt. De onderstaande figuur toont het resultaat van deze filtermethode.

    Figuur 14: Beeld voor verwerking

    Figuur 15: Beeld na verwerking

  9. Filteren op basis van een gewogen som
  10. In deel 4.1 hebben we gezien dat ruis kan verminderd worden m.b.v. een gewogen gemiddelde van de punten die zich in een venster bevinden dat verplaatst wordt over het oorspronkelijke beeld. We kunnen nu, zuiver theoretisch, het gewogen gemiddelde vervangen door een gewogen som. Dit komt neer op een veralgemening van het principe uit deel 4.1 omdat een gewogen gemiddelde feitelijk ook een gewogen som is. Stel voor de eenvoud dat we het volgende 3x3-venster nemen:

    a00 a01 a02
    a10 a11 a12
    a20 a21 a22

    Dan wordt de kleurintensiteit van het punt (x,y) in één van de kleurvlakken, na toepassing van de beschreven methode, gegeven door , waarbij f de oorspronkelijke kleurintensiteit van het resp. kleurvlak beschrijft. Afhankelijk van de waarde van de gewichten kunnen verschillende effecten worden bekomen. Als richtlijn kan men stellen dat het beeld lichter zal worden indien de som van de gewichten groter is dan 1 en donkerder zal worden indien de som van de gewichten kleiner is dan 1. Dit komt omdat getallen groter dan 1 de kleurintensiteit zullen vergroten en dus zullen aanleiding geven tot meer felle kleuren, terwijl getallen kleiner dan 1 juist de kleurintensiteit zullen verkleinen, wat resulteert in een meer donkere kleur. Aangezien de kleurintensiteit, bij computertoepassingen steeds moeten gelegen zijn tussen 0 en 255 wordt afgesproken dat eventuele negatieve resultaten vervangen worden door 0, terwijl waarden groter dan 255 vervangen worden door 255.

    Hieronder zien we een aantal voorbeelden van deze methode, telkens toegepast op figuur 16. Het gebruikte venster werd er steeds bij vermeld.

     

    Figuur 16: Beeld voor verwerking

    Figuur 17: Beeld na verwerking

    Figuur 18: Beeld na verwerking

    Figuur 19: Beeld na verwerking

  11. Opsporen van "randen" in digitale beelden
  12. Wanneer we de methode uit deel 5 toepassen met een bijzondere keuze van venster kunnen we als ware de "rand" in het beeld isoleren. Om dit effect te zien passen we deze methode toe in het onderstaande voorbeeld. We gebruiken een 3x3-venster met de volgende gewichten:

    0 1 0
    1 -4 1
    0 1 0

    Hier zie je het resultaat:

    Figuur 20: Beeld voor verwerking

    Figuur 21: Beeld na verwerking en inversie

    Merk op dat we na het toepassen van de voorgestelde methode (we spreken ook soms van het toepassen van een filter), het beeld geïnverteerd hebben. Inverteren betekent voor elk pixeltje van het beeld de kleur vervangen door de complementaire kleur. Op deze wijze krijgen we als het ware een kleurnegatief van het oorspronkelijke beeld. Hier passen we die inversie enkel toe om een lichtere figuur te verkrijgen. Wij kunnen immers beter beelden detecteren wanneer deze op een lichte achtergrond weergegeven worden.

    We zien in figuur 21 duidelijk de "rand" van het beeld. Bijzonder aan het hier gebruikte venster is dat de som van de gewichten 0 is. Elk venster waarvan de som van de gewichten 0 is genereert een "rand". Bij de ene filter is de rand wel duidelijker dan bij de andere. Nog bijzonder aan de gebruikte filter is dat hij behoort tot de groep van de Laplace-filters. We gaan hier echter niet verder op in.

  13. Scherpstellen van digitale beelden.
  14. Tot slot kunnen we de techniek om het opsporen van randen gebruiken om een filter te ontwikkelen die een beeld kan "verscherpen". Hiermee bedoelen we de rand van het beeld duidelijker laten aftekenen zodat een scherper beeld ontstaat. Het principe om dit te bereiken is eenvoudig. We sporen eerst de rand op van het beeld m.b.v. de techniek uit deel 6. Dan maken we het verschil tussen het oorspronkelijke beeld en de gevonden rand. Het resultaat is een scherper beeld. Stellen we weerom voor de eenvoud dat we het volgende 3x3-venster nemen waarbij de som van de gewichten 0 is:

    a00 a01 a02
    a10 a11 a12
    a20 a21 a22

    Dan wordt de kleurintensiteit van het punt (x,y) in één van de kleurvlakken, na toepassing van het "scherpstellen", gegeven door , waarbij f de oorspronkelijke kleurintensiteit van het resp. kleurvlak beschrijft. Hieruit volgt eenvoudig dat het scherpstellingsproces uit te voeren is m.b.v. één filter, bepaald door:

    -a00 -a01 -a02
    -a10 1-a11 -a12
    -a20 -a21 -a22

    Indien we deze techniek gebruiken in combinatie met de Laplace-filter gebruikt in deel 6, krijgen we de volgende "scherpstellingsfilter":

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

    Hieronder zien we een voorbeeld waarbij deze filter werd gebruikt. Het oorspronkelijke beeld is het beeld dat bekomen werd na de mediaanfilter (figuur 12).

    Figuur 22: Beeld voor verwerking

    Figuur 23: Beeld na verwerking


    Homepage 'Topics uit wiskunde en economie'
  15. Copyright ©2000