Selectie van een zone van het slaghoedje
Bij registratie wegen de randen, zoals blijkt uit de testen in paragraaf 5.6, het meest door in de globale fout. Bij het bepalen van de richting van de groeven zullen deze randen nog een grotere invloed hebben, b.v.
omdat de helling van 0 tot het slaghoedje-oppervlak veel groter is dan de diepte van de groeven zelf. We zullen daarom met de randen bij registratie geen rekening houden. We hebben een aantal methoden geimplementeerd die de randen en de randvervormingen wegwerken. Als illustratie voor deze algoritmen, nemen we het slaghoedje-oppervlak A weergegeven in Fig. 4.2.
Figuur 4.2: Voorbeeld voor de selectie van een zone op het slaghoedje.
Morfologische erosie-filter op de randen.
In een eerste functie worden de vervormingen aan de randen van het opper- vlaktebeeld A van het slaghoedje weggewerkt. We doen dit via het toepassen van een morfologische erosie-filter met een structuurelement met een grootte gegeven door een parameter f. Deze f is afhan- kelijk van de grootte van het slaghoedje en de slagpinindruk. De filter passen we toe op een masker M van het testbeeld. Dit masker M heeft de waarde 1 voor de beeldpunten waar de z-waarde groter dan 0 is en 0 waar de z-waarde gelijk aan 0 is. We bekomen na het filteren een nieuw masker M2. Het masker M2 gebruiken we dan om de randen uit het testbeeld te verwijderen. M2 bestaat uit de waarde 0 — dit waren alle waarden in M2 kleiner dan 1 — en de waarde 1, waarbij een 0 zorgt voor een 0 in het resultaatbeeld en een 1 zorgt dat de waarde van A overgenomen wordt in het resultaatbeeld. We krijgen na toepassing van het masker M2 op het testbeeld A het resultaat weergegeven in Fig. 4.3. Hierbij is f gelijk aan 50 gekozen.
Gemiddelde-waardefilter op de randen.
In de functie passen we een gemiddelde-waardefilter met venster fxf toe op het masker M van het testbeeld A.
Deze filter maakt de randen van het maskerbeeld M schuin. Het resultaat noemen we M 2. M2 bestaat weerom uit de waarde 0 — dit waren alle waarden in M2 kleiner dan 1 — en de waarde 1, waarbij een 0 zorgt voor een 0 op die positie in het resultaatbeeld en een 1 ervoor zorgt dat de z-waarde van A overgenomen wordt op de desbetreffende positie. We krijgen na toepassing van het masker M2 op het testbeeld A het resultaat weergegeven in Fig. 4.4. Hierbij is f gelijk aan 50 gekozen.Gradientgebaseerde randverwijdering.
In de functie benaderen we het slaghoedje vanuit de rand van het beeld die het slaghoedje-oppervlak bevat. Indien we naar het centrum van het beeld toegaan, zal de z-waarde aan de randen van het slaghoedje-oppervlak toenemen naarmate men zich dichter naar het centrum begeeft. We bekomen het analoge effect, indien we vanuit de slagpinindruk het slaghoedje-oppervlak benaderen. We creeren een masker M2 dat 0 is waar het oppervlaktebeeld 0 is en waar de z-waarden stijgen aan de randen van het slaghoedje. De rest van de waarden in het masker zijn gelijk aan 1. Er is de optie om een parameter steps mee te geven in de functie om nauwkeuriger de zone te kunnen bepa- len, aangezien het kan voorkomen dat men in de rand zelf een plotse daling krijgt. De parameter steps bepaalt het aantal keer dat het algoritme toegepast wordt op het beeld. We krijgen na toepassing van het masker M2 op het testbeeld het resultaat weergegeven in Fig. 4.5 waarbij we de parameter steps gelijk aan 10 gekozen hebben.
Selectie van een zone via poolcoordinaten
Bij deze methode brengen we bij de bepaling van een zone de vorm van het slaghoedje in reke- ning. Het is namelijk zo dat een slaghoedje ongeveer cirkelvormig is. Om een zone in een cirkel te bepalen, zullen we poolcoordinaten gebruiken. De omzetting van cartesische 3D-coordinaten naar 3D-poolcoordinaten is gegeven in de formule 4.14. Indien we de poolcoordinaten terug willen om- zetten naar cartesische coordinaten, gebruiken we de formule 4.15.
In de formules zijn (ox, oy,oz) de coordinaten van het middelpunt.r = y/X—oX/^T/y—Oyi2T^Z-OZ)2
ф = atan((x - °x)) (4.14)
У — °y
в = asm(---------------------------------------------------------- )
r
X = rsin^)cos(e) + Ox
y = rcos^)cos(e) + oy (4.15)
Z = rsin(e) + oz
In het algoritme van onze functie bepalen we de gewenste zone aan de hand van ф en r\'. Deze laatste is de projectie van r — de straal — op het XY-vlak en de berekening ervan gebeurt via de formule 4.16. Als middelpunt (ox, oy, oz) nemen wij het middelpunt van de slagpinindruk, dat we eerder al hebben berekend in paragraaf 3.3.3.
r\' = \\J(x - ox)2 + (y - Oy)2 (4.16)
De selectie gebeurt door voor elke hoek ф, gaande van 1° tot 360°, de gemiddelde r\' te berekenen. Dit gemiddelde is telkens bepaald voor de punten die eenzelfde ф-waarde hebben en geen z-waarde gelijk aan 0.
Het uiteindelijk gebied wordt dan bepaald door voor elke hoek ф een gebied op het slaghoedje- oppervlak te bepalen dat een standaard- of meegegeven grootte heeft met r\' als midden. Als stan- daardgrootte van het gebied hebben we 115 afgeleid uit testen in paragraaf 5.7.1. Het resultaat na toepassing van de functie op het testbeeld A in Fig. 4.2, wordt weergegeven in Fig. 4.6. Deze methode zullen we bij onze registratie gebruiken, omdat de geselecteerde zone onafhankelijk is van de vorm van de randen van het slaghoedje. Deze vorm had een invloed op de nodige parameters voor de voorgaande algoritmen.
Figuur 4.4: Verwijdering van de randen via een gemiddelde-waarde filter.
Figuur 4.3: Verwijdering van de randen via mor- fologische erosie.
Figuur 4.6: Selectie van een zone via het gebruik van poolcoordinaten.
Figuur 4.5: Verwijdering van de randen via een gradientgebaseerde filter.
4.4.2