smooth_object_model_3dT_smooth_object_model_3dSmoothObjectModel3dsmooth_object_model_3dSmoothObjectModel3dSmoothObjectModel3d — Glätten von 3D-Punkten eines 3D-Objektmodells.
Für jeden Punkt P berechnet der MLS-Algorithmus eine Ebene oder
eine Oberfläche höherer Ordnung, welche optimal an die
k-Nachbarschaft des Punktes (d.h. die nächsten
k Nachbarn) angepasst wird. Das Oberflächenfitting ist
im Wesentlichen als gewichtete Methode der kleinsten Quadraten für
die Schätzung der Ebene- bzw. Oberflächenparameter implementiert.
Die nächsten Nachbarn von P haben einen größeren Einfluss auf die
Parameterschätzung als die ferneren Punkte. Dieser Einfluss wird durch
die folgende Gewichtungsfunktion und der Parameter
gesteuert:
Der Punkt wird dann auf die Oberfläche projiziert. Dieses Verfahren
wird für jeden einzelnen Punkt wiederholt, was in einem geglätteten
Punktsatz resultiert. Die Punkte auf der gefitteten Oberflächen haben
leicht zu berechnende Normalen (d.h. die Normalen können direkt aus
den jeweiligen Oberflächenparametern berechnet werden). Folglich werden
die Punkte nicht nur geglättet, sondern als Nebeneffekt des Glättens
bekommen sie eine Schätzung für ihre Normalen.
Setzt die Ordnung der der MLS-Oberfläche. Für
'mls_order'"mls_order""mls_order""mls_order""mls_order""mls_order"=1 ist die Oberfläche eine einfache
Ebene.
Setzt der Gewichtungsparameter als
Festwert in Meter. Der auszuwählende Wert hängt stark vom Maßstab
der eingegebenen Punktdaten ab. Als Faustregel sollte man einen Wert
für nehmen, der den typischen Abstand
jedes Punktes P zu seinem k/2. (mittleren)
Nachbarn entspricht. Es ist zu beachten, dass,
wenn die Daten eine variierende Dichte haben, das Setzen eines
Festwerts für zu ungleiche
Glättungsergebnissen für die Bereiche mit unterschiedlicher
Punktdichte führt. Dieses Problem kann umgegangen werden indem man statt
'mls_abs_sigma'"mls_abs_sigma""mls_abs_sigma""mls_abs_sigma""mls_abs_sigma""mls_abs_sigma" den Parameter 'mls_relative_sigma'"mls_relative_sigma""mls_relative_sigma""mls_relative_sigma""mls_relative_sigma""mls_relative_sigma"
benutzt. Der letztere ist unabhängig vom Maßstab und deswegen auch
einfacher zu bedienen.
Es sollte allerdings auch beachtet werden, dass der Parameter
'mls_relative_sigma'"mls_relative_sigma""mls_relative_sigma""mls_relative_sigma""mls_relative_sigma""mls_relative_sigma" ignoriert wird, wenn der Parameter
'mls_abs_sigma'"mls_abs_sigma""mls_abs_sigma""mls_abs_sigma""mls_abs_sigma""mls_abs_sigma" gesetzt ist.
Setzt einen Multiplikationsfaktor
der verwendet wird, um für jeden
Punkt P nach der Formel zu berechnen:
wobei der k/2. Nachbar von
P ist.
Anders als der global für alle Punkte wirkende Parameter
wird
allein für den jeweiligen Punkt P berechnet. Dadurch werden
Probleme vermieden, welche durch das Verwenden eines festen Wertes für
Daten mit variierender Punktdichte entstehen.
Es sollte allerdings auch beachtet werden, dass der Parameter
'mls_relative_sigma'"mls_relative_sigma""mls_relative_sigma""mls_relative_sigma""mls_relative_sigma""mls_relative_sigma" ignoriert wird, wenn der Parameter
'mls_abs_sigma'"mls_abs_sigma""mls_abs_sigma""mls_abs_sigma""mls_abs_sigma""mls_abs_sigma" gesetzt ist.