connect_grid_points
— Erstellt Verbindungen zwischen den Gitterpunkten des Entzerrungsgitters.
connect_grid_points
sucht die Verbindungslinien zwischen den
Gitterpunkten (Row
,Column
) des Entzerrungsgitters.
Die Verbindungslinien werden durch Kombination je eines Kanten-, Glättungs-
und Linienfilters der Größe
aus dem Eingabebild Image
extrahiert.
Das verwendete wird dazu wie folgt bestimmt:
Wird in Sigma
ein einzelner Wert übergeben, so wird dieser Wert
benutzt.
Wird in Sigma
ein Tupel mit drei Werten ('sigma_min' ,
'sigma_max' ,'sigma_step' ) übergeben, so überprüft
connect_grid_points
alle im Bereich von
'sigma_min' bis 'sigma_max' mit einer Schrittweite von
'sigma_step' und wählt jenes aus,
das die größte Anzahl an Verbindungslinien zur Folge hat.
Das gleiche passiert, wenn in Sigma
ein Tupel mit nur zwei
Werten 'sigma_min' und 'sigma_max' übergeben wird. In diesem
Fall wird dann eine feste Schrittweite von 0.05 verwendet.
Die gefundenen Verbindungslinien werden dann an den Gitterpunkten
aufgebrochen und diejenigen Linienstücke ausgewählt, die sowohl an
einem Gitterpunkt beginnen, als auch an einem Gitterpunkt enden. Dabei
ist zu beachten, dass Kantenfilter rund um Kreuzungspunkte typischerweise
keine genauen Resultate liefern und somit die Verbindungslinien kaum die
Gitterpunkte direkt treffen werden.
Folglich werden tatsächlich diejenigen Linien aufgebrochen und ausgewählt,
die in einer Entfernung von einem Gitterpunkt von höchstens
MaxDist
beginnen, enden oder den Punkt passieren.
Die ausgewählten
Verbindungslinien werden noch derart modifiziert, dass sie genau in den
jeweiligen Gitterpunkten beginnen und enden, und in ConnectingLines
als XLD Konturen zurückgegeben.
Darüberhinaus wird für jede Ausgabekontur ihr Typ von Hell-Dunkel-Übergang
berechnet und im globalen Attribut 'bright_dark' abgespeichert.
Das Attribut bekommt den Wert 1.0, wenn an der Verbindungslinie
ein Hell-Dunkel-Übergang stattfindet (von links nach rechts, vom Anfangs-
zum Endpunkt gesehen), ansonsten 0.0. Weitere Informationen zu
globalen Konturattributen können der
Referenz von get_contour_global_attrib_xld
entnommen werden.
Sowohl für die zuverlässige Bestimmung des Typs von Hell-Dunkel-Übergang
als auch für die spätere Entzerrung ist es unabdinglich, dass jede
Verbindungslinie mindestens drei Konturpunkte aufweist. Verbindungslinien
mit nur zwei Konturpunkten werden daher nicht ausgegeben. Dabei ist zu
beachten, dass der Parameter MaxDist
einen erheblichen Einfluss
auf die Länge der zurückgegebenen Verbindungslinien hat, da alle
Konturpunkte einer möglichen Verbindungslinie, die näher als
MaxDist
an einem Gitterpunkt liegen, durch einen einzigen
Konturpunkt ersetzt werden. Ist MaxDist
zu groß, dann gehen
unter Umständen einige der Verbindungslinien verloren.
Image
(input_object) singlechannelimage →
object (byte / uint2)
Eingabebild.
ConnectingLines
(output_object) xld-array →
object
Ausgabekonturen.
Row
(input_control) point.y-array →
(real)
Zeilenkoordinaten der Gitterpunkte.
Column
(input_control) point.x-array →
(real)
Spaltenkoordinaten der Gitterpunkte.
Restriktion: number(Column) == number(Row)
Sigma
(input_control) number(-array) →
(integer / real)
Größe der verwendeten Gaußkerne.
Parameteranzahl: 1 <= Sigma && Sigma <= 3
Defaultwert: 0.9
Wertevorschläge: 0.7, 0.9, 1.1, 1.3, 1.5
Restriktion: 0.7 <= Sigma
MaxDist
(input_control) number →
(real / integer)
Maximalabstand der Verbindungslinien von den Gitterpunkten.
Defaultwert: 5.5
Wertevorschläge: 1.5, 3.5, 5.5, 7.5, 9.5
Restriktion: 0.0 <= MaxDist
Sind die Parameterwerte korrekt, dann liefert
connect_grid_points
den Wert 2 (H_MSG_TRUE).
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Calibration