background image
2.1.1 Reguläre Vermaschung mit PointMesh
Die Punktwolken aus 3D-Laserscans, die uns als Ausgangsdatensätze dienen, besitzen zwei
charakteristische Merkmale:
1. Die Messpunkte sind nicht gleichmäßig verteilt. Ihre Dichte nimmt mit zunehmender
Entfernung zum Scannerstandort ab und hängt von der Anzahl der vorgenommenen Scans
ab.
2. Die Punktwolken besitzen an vielen Stellen ,,Löcher", die z.B. durch Verschattungen,
Oberflächenreflexion und Fenster entstehen können.
Um ein Bauwerk mit einem 3D-Laserscanner aufzunehmen, werden aus diesen Gründen zahlreiche
Scans aus unterschiedlichen Positionen durchgeführt, um Löcher und Verschattungen zu vermeiden
und insgesamt detailliertere Aufnahmen zu erhalten. Die Messpunkte eines einzelnen Scans sind
geordnet, da der Messkopf die Datenwerte fächerförmig von unten nach oben aufnimmt und sich
schrittweise um seine vertikale Achse dreht. Ein anschließender Prozess des Matchings führt dazu,
dass die Punkte aller Scans vereinigt werden und somit im endgültigen Datensatz völlig ungeordnet
vorliegen.
Trotz der relativ flüssigen Darstellung von Punktwolken kommen selbst leistungsfähige Rechner
und Grafikkarten ins Stocken, wenn man sehr große Punktwolken ( > 3 Mio. Punkte ) einliest, wie
wir sie z.B. von dem Kirchenrest des Klosters Lorsch besitzen.
Aus diesem Grunde wurde an einem regulären Vermaschungsalgorithmus gearbeitet, der im
Rahmen eines Softwarepraktikums entwickelt wurde. Der Ansatz, diese Punktwolken zu
vermaschen, besteht darin, diese Oberfläche mit triangulierten Quadraten einer fest gewählten
Größe zu approximieren [SWP_MESH].
Dieser Algorithmus wählt eine orthographische Projektion eines Teilausschnitts der Punktwolke,
dessen approximierte Oberfläche insgesamt in eine bestimmte Richtung weist. Schrittweise
detektiert der Algorithmus alle Punkte innerhalb einer quadratischen Region (genannt ,,Patch") von
9
Abbildung 9: Struktureller Aufbau des Programmcodes von PointMesh. Der hier vorgestellte
Algorithmus wurde in den neu eingeführten Dateien mesh_optimization.cc / mesh_optimization.h
untergebracht.