# Objectvoorstelling

Een objectvoorstelling is binnen de digitale beeldverwerking een voorstelling van een gesegmenteerd object, die deze in een compacte en/of essentiële vorm weergeeft. Hierdoor kunnen er op efficiënte wijze analyses en vergelijkingen op de eigenschappen van het object uitgevoerd worden. Er zijn twee aspecten waarop men een voorstelling kan baseren:
       Wanneer vooral de vorm van belang is
       Wanneer zaken als kleur of textuur van belang zijn

## Methoden

In deze sectie beschrijven we enkele van de meest bekende methoden om een objectvoorstelling op te stellen. Normalisatie is bij deze methoden een essentieel aspect, zodat veranderingen als rotatie en schaal geen invloed hebben.

### Randen volgen

De randen volgen methode definieert van een binair beeld de randen volgens wijzerzin.
Het startpunt (B$_0$) is de voorgrondpixel (1) die het meest linksboven in de afbeelding ligt. Het punt C$_0$ wordt gedefinieerd als de meest westelijke buur van B$_0$. Als gevolg zal C$_0$ altijd een achtergrondpixel zijn. Extra voorwaarde: er mag geen enkele voorgrondpixel de rand van de afbeelding raken.
* De 8 buren van B$_n$ worden gecontroleerd in wijzer zin, te beginnen bij C$_n$. Men stopt bij de eerste voorgrondpixel die men tegenkomt.
* Die pixel wordt nu B$_{n+1}$ en de pixel die daarop voorafging C$_{n+1}$
* Herhaal stappen 1 en 2 totdat de nieuw gevonden B = B$_0$ en de daarop volgende B = B$_1$. Dan is de rand zeker helemaal rond gesloten.
Als beginvoorwaarde van deze techniek mogen geen voorgrondpixels de kanten van de afbeelding raken.

### Kettingcodes

Een kettingcode is een manier om een gedefinieerde rand voor te stellen. We zien de rand dan als een opeenvolging van korte lijnsegmenten die een bepaalde oriëntatie hebben. De oriëntatie van elk randsegment wordt met een codenummer voorgesteld. We kunnen daarbij werken met 4- of 8-connectiviteit.
Het opstellen van de kettingcode:
* De rand wordt op een raster gelegd, vervolgens wordt de rand op de roosterknooppunten gesampled.
* Men kiest een beginsample en noteert telkens de richting naar de volgende sample in het rooster (volgens de 4- of 8-connectiviteit).
Om invloed van ruis te beperken en om een scherpere voorstelling van de rand te geven kan er voor een fijner rooster gekozen worden.

#### Normalisatie

Om de kettingcode te normaliseren kunnen we twee technieken toepassen:
* Normaliseren voor rotatie:
       Elke richting wordt relatief genomen ten opzichte van het vorige punt (wijzerzin)
       Voorbeeld: "10103322" wordt "3133030"
* Normaliseren voor startpunt:
       We kiezen het startpunt zo dat ons ketting code het kleinst mogelijk getal vormt.
       Voorbeeld: "3133030" wordt "0303133"

### Signaturen

Een signatuur is een eendimensionale voorstelling van een rand. Er zijn verscheidene types signaturen zoals, de slope density function en de afstand tussen zwaartepunt en rand.

#### Afstand tussen zwaartepunt en rand

De afstand tussen het zwaartepunt en de rand wordt op een eendimensionale grafiek uitgezet ten opzichte van verandering van de hoek.
* Het zwaartepunt van het object wordt bepaald.
* Het startpunt op de rand wordt gespecificeerd.
* De afstand tussen het zwaartepunt en het randpunt wordt opgemeten.
* Het volgende punt op de rand wordt genomen. (de hoek wordt vergroot)
* Stap 3 en 4 worden herhaald tot het oorspronkelijk startpunt terug wordt bereikt (na 360°)
Uit deze signatuur kunnen bepaalde kenmerken van randen duidelijke op eendimensionale wijze weergegeven worden: zo geeft een vierhoek duidelijk vier pieken, een driehoek duidelijk drie, etc.

#### Normalisatie

Een signatuur is translatie-onafhankelijk. Het is ook mogelijk om de signaturen verder te normaliseren om zo ook rotatie- en schalings-onafhankelijkheid te bekomen.
* Normaliseren voor rotatie
** Er moet een conventie bestaan over het startpunt.
    Er kan bijvoorbeeld afgesproken worden dat het punt het verste van het zwaartepunt de startpositie is.
* Normaliseren voor schaal
** De randen normaliseren tussen 0 en 1 of
** Elke sample door de variantie van de signatuur te delen. Dit is minder ruisgevoelig dan de vorige methode maar vergt meer berekeningen.
* ↑ Moore boundary tracing
* Rafael C. Gonzalez en Richard E. Woods (2008) Digital image processing. New Jersey, Prentice-Hall.