connect_grid_pointsT_connect_grid_pointsConnectGridPointsConnectGridPoints (Operator)

Name

connect_grid_pointsT_connect_grid_pointsConnectGridPointsConnectGridPoints — Erstellt Verbindungen zwischen den Gitterpunkten des Entzerrungsgitters.

Signatur

connect_grid_points(Image : ConnectingLines : Row, Column, Sigma, MaxDist : )

Herror T_connect_grid_points(const Hobject Image, Hobject* ConnectingLines, const Htuple Row, const Htuple Column, const Htuple Sigma, const Htuple MaxDist)

void ConnectGridPoints(const HObject& Image, HObject* ConnectingLines, const HTuple& Row, const HTuple& Column, const HTuple& Sigma, const HTuple& MaxDist)

HXLD HImage::ConnectGridPoints(const HTuple& Row, const HTuple& Column, const HTuple& Sigma, const HTuple& MaxDist) const

HXLD HImage::ConnectGridPoints(const HTuple& Row, const HTuple& Column, Hlong Sigma, double MaxDist) const

static void HOperatorSet.ConnectGridPoints(HObject image, out HObject connectingLines, HTuple row, HTuple column, HTuple sigma, HTuple maxDist)

HXLD HImage.ConnectGridPoints(HTuple row, HTuple column, HTuple sigma, HTuple maxDist)

HXLD HImage.ConnectGridPoints(HTuple row, HTuple column, int sigma, double maxDist)

Beschreibung

connect_grid_pointsconnect_grid_pointsConnectGridPointsConnectGridPointsConnectGridPoints sucht die Verbindungslinien zwischen den Gitterpunkten (RowRowRowRowrow,ColumnColumnColumnColumncolumn) des Entzerrungsgitters. Die Verbindungslinien werden durch Kombination je eines Kanten-, Glättungs- und Linienfilters der Größe aus dem Eingabebild ImageImageImageImageimage extrahiert. Das verwendete wird dazu wie folgt bestimmt: Wird in SigmaSigmaSigmaSigmasigma ein einzelner Wert übergeben, so wird dieser Wert benutzt. Wird in SigmaSigmaSigmaSigmasigma ein Tupel mit drei Werten ('sigma_min'"sigma_min""sigma_min""sigma_min""sigma_min", 'sigma_max'"sigma_max""sigma_max""sigma_max""sigma_max",'sigma_step'"sigma_step""sigma_step""sigma_step""sigma_step") übergeben, so überprüft connect_grid_pointsconnect_grid_pointsConnectGridPointsConnectGridPointsConnectGridPoints alle im Bereich von 'sigma_min'"sigma_min""sigma_min""sigma_min""sigma_min" bis 'sigma_max'"sigma_max""sigma_max""sigma_max""sigma_max" mit einer Schrittweite von 'sigma_step'"sigma_step""sigma_step""sigma_step""sigma_step" und wählt jenes aus, das die größte Anzahl an Verbindungslinien zur Folge hat. Das gleiche passiert, wenn in SigmaSigmaSigmaSigmasigma ein Tupel mit nur zwei Werten 'sigma_min'"sigma_min""sigma_min""sigma_min""sigma_min" und 'sigma_max'"sigma_max""sigma_max""sigma_max""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 MaxDistMaxDistMaxDistMaxDistmaxDist 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 ConnectingLinesConnectingLinesConnectingLinesConnectingLinesconnectingLines 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'"bright_dark""bright_dark""bright_dark""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_xldget_contour_global_attrib_xldGetContourGlobalAttribXldGetContourGlobalAttribXldGetContourGlobalAttribXld entnommen werden.

Achtung

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 MaxDistMaxDistMaxDistMaxDistmaxDist einen erheblichen Einfluss auf die Länge der zurückgegebenen Verbindungslinien hat, da alle Konturpunkte einer möglichen Verbindungslinie, die näher als MaxDistMaxDistMaxDistMaxDistmaxDist an einem Gitterpunkt liegen, durch einen einzigen Konturpunkt ersetzt werden. Ist MaxDistMaxDistMaxDistMaxDistmaxDist zu groß, dann gehen unter Umständen einige der Verbindungslinien verloren.

Ausführungsinformationen

Parameter

ImageImageImageImageimage (input_object)  singlechannelimage objectHImageHImageHobject (byte / uint2)

Eingabebild.

ConnectingLinesConnectingLinesConnectingLinesConnectingLinesconnectingLines (output_object)  xld-array objectHXLDHXLDHobject *

Ausgabekonturen.

RowRowRowRowrow (input_control)  point.y-array HTupleHTupleHtuple (real) (double) (double) (double)

Zeilenkoordinaten der Gitterpunkte.

ColumnColumnColumnColumncolumn (input_control)  point.x-array HTupleHTupleHtuple (real) (double) (double) (double)

Spaltenkoordinaten der Gitterpunkte.

Restriktion: number(Column) == number(Row)

SigmaSigmaSigmaSigmasigma (input_control)  number(-array) HTupleHTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

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

MaxDistMaxDistMaxDistMaxDistmaxDist (input_control)  number HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

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

Ergebnis

Sind die Parameterwerte korrekt, dann liefert connect_grid_pointsconnect_grid_pointsConnectGridPointsConnectGridPointsConnectGridPoints den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

saddle_points_sub_pixsaddle_points_sub_pixSaddlePointsSubPixSaddlePointsSubPixSaddlePointsSubPix

Nachfolger

gen_grid_rectification_mapgen_grid_rectification_mapGenGridRectificationMapGenGridRectificationMapGenGridRectificationMap

Modul

Calibration