fit_circle_contour_xldfit_circle_contour_xldFitCircleContourXldFitCircleContourXldfit_circle_contour_xld — Approximieren von bogenförmigen XLD-Konturen durch Kreise.
Minimiert wird der algebraische Abstand zwischen
den Konturpunkten und dem gesuchten Kreis.
'ahuber'"ahuber""ahuber""ahuber""ahuber"
Wie 'algebraic'"algebraic""algebraic""algebraic""algebraic". Es wird jedoch eine Gewichtung der Konturpunkte
vorgenommen, bei der Ausreißer nach dem Ansatz von Huber gedämpft
werden (siehe unten).
'atukey'"atukey""atukey""atukey""atukey"
Wie 'algebraic'"algebraic""algebraic""algebraic""algebraic". Es wird jedoch eine Gewichtung der Konturpunkte
vorgenommen, bei der Ausreißer nach dem Ansatz von Tukey ignoriert
werden (siehe unten).
Minimiert wird der geometrische Anstand von Konturpunkten und dem
gesuchten Kreis.
Dieses Fehlermaß ist in einem statistischen Sinne optimal,
braucht aber auch eine längere Rechenzeit.
Besonders bei merklich verrauschten Konturpunkten ist die Wahl
dieser Option zu empfehlen.
Wie 'geometric'"geometric""geometric""geometric""geometric". Es wird jedoch eine Gewichtung der Konturpunkte
vorgenommen, bei der Ausreißer nach dem Ansatz von
Huber gedämpft werden (siehe unten).
Wie 'geometric'"geometric""geometric""geometric""geometric". Es wird jedoch eine Gewichtung der Konturpunkte
vorgenommen, bei der Ausreißer nach dem Ansatz von
Tukey ignoriert werden (siehe unten).
In den Modi '*huber' und '*tukey' wird eine robuste Fehlerstatistik
verwendet, um die Standardabweichung der Abstände der Konturpunkte (ohne
Ausreißer) von dem approximierenden Kreis zu ermitteln. Der Parameter
ClippingFactorClippingFactorClippingFactorclippingFactorclipping_factor (ein Skalierungsfaktor für diese Standardabweichung)
steuert in diesen Modi den Grad der Ausreißerdämpfung: Je kleiner der Wert
gewählt wird, desto mehr Punkte werden als Ausreißer behandelt.
Jeder Konturpunkt fließt individuell gewichtet in die Berechnung der
Kreisparameter mit ein.
Ausreißer werden nach dem Ansatz von Tukey komplett eliminiert, während bei
dem Verfahren nach Huber diese noch gering, i.e., linear, gewichtet werden.
Ohne robuste Gewichtung geht der Abstand quadratisch in die Optimierung mit
ein. In der Praxis ist der Ansatz nach Tukey zu empfehlen.
Der Parameter IterationsIterationsIterationsiterationsiterations
enthält die Anzahl durchzuführender Iterationen für die Algorithmen
'algebraic'"algebraic""algebraic""algebraic""algebraic", 'ahuber'"ahuber""ahuber""ahuber""ahuber" und 'atukey'"atukey""atukey""atukey""atukey". Für die
Algorithmen 'geometric'"geometric""geometric""geometric""geometric", 'geohuber'"geohuber""geohuber""geohuber""geohuber" und 'geotukey'"geotukey""geotukey""geotukey""geotukey"
wird dieser Parameter ignoriert. Wird
IterationsIterationsIterationsiterationsiterations auf null gesetzt, so versucht der Algorithmus nicht, den
gefitteteten Kreis iterativ zu verbessern. Er überprüft lediglich, ob der
erste Fit bereits ausreichend approximiert, abhängig von der gewählten
Behandlung der Ausreißer.
Die notwendige, minimale Anzahl an Konturpunkten zur Anpassung
eines Kreises ist drei.
Es wird daher vorausgesetzt, dass die Konturen mindestens
Punkte enthalten.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Sind die Parameterwerte korrekt und konnte eine Kreisanpassung
durchgeführt werden, liefert fit_circle_contour_xldfit_circle_contour_xldFitCircleContourXldFitCircleContourXldfit_circle_contour_xld den
Wert 2 (
H_MSG_TRUE)
. Das Verhalten bei leerer Eingabe (keine Eingabebilder
vorhanden) lässt sich mittels
set_system('no_object_result',<Result>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Wenn der Parameter ClippingFactorClippingFactorClippingFactorclippingFactorclipping_factor so klein gewählt worden ist,
dass alle Punkte als Ausreißer klassifiziert werden, wird die Fehlermeldung
3264 zurückgeliefert.