4.4 Zusammenhangsanalyse und Merkmalsextraktion


Da wir nun wissen, ob es in den letzten zwei Bildern einen "Lasersprung" gibt, können wir uns, falls dem so ist, an die Auswertung des Bildes machen. Dies geschieht in der Funktion Zusammenhang().

Hier wird eine Komponentenmarkierung mit dem Verfahren "Blob Coloring" durchgeführt. Das genaue Verfahren ist in Ad Oculus S.171ff beschrieben. Nach dieser Zusammenhangsanalyse haben wir ein Bild, dessen zusammenhängende Flächen mit genau einem Grauwert markiert sind, wie in Abbildung 17 zu sehen ist. Wir nennen diese markierten Flächen im Weiteren "Marken".

Abbildung 17

In der Funktion GetFeature(), die als Parameter die Matrix Bildes mit den Marken, sowie einen Array aller gefundenen Marken und die Anzahl der Marken erhält, werden nun die Eigenschaften dieser Marken in einem Array von "Feature" - Objekten gespeichert.

Die Klasse FEATURE enthält als Attribute die Merkmale dieser Marken, wie zum Beispiel Schwerpunkt, Fläche, eine eindeutige Nummer, die der Laserpunktnummer entspricht, und die maximalen Ausdehnung in X- und Y-Richtung, bei uns Polabstand genannt. Unter optimalen Umständen sollten hier schon alle Laserpunkte erkannt worden sein. (Siehe Abbildung 18)

|

Abbildung 18


Durch Fahren oder Drehen des Fahrzeuges zwischen zwei Bildern entstehen jedoch "Störmarken". Ebenso beschert uns auch die Bildübertragung selbst viele Fehl- oder Störmarken.

Abbildung 19


Hier in Abbildung 19 sieht man die Laserpunkte und diese falsch erkannten Marken als dunkelgraue Kreuze. Es handelt sich hierbei um Marken aus Schatteneffekten um die Laserpunkte herum. Gültige Marken hingegen werden weiß gezeichnet und mit einer Nummer versehen. Dies erledigt die Methode CorrectFeature(), in der der Flächeninhalt, die Polabstände im Verhältnis und vor allem die Lage der Marken dazu benutzt wird, unerwünschte Marken auszufiltern. Für die Kennzeichnung korrekter Marken ist die Methode MarkFeature() zuständig, das Ergebnis ist in Abbildung 20 und 21 zu sehen.

Abbildung 20
Abbildung 21