KlassenKlassen | | Operatoren

gen_grid_rectification_mapT_gen_grid_rectification_mapGenGridRectificationMapGenGridRectificationMap (Operator)

Name

gen_grid_rectification_mapT_gen_grid_rectification_mapGenGridRectificationMapGenGridRectificationMap — Berechnet die Abbildung vom verzerrten ins entzerrte Bild, aufbauend auf den Punkten in einem regulären Gitter.

Signatur

gen_grid_rectification_map(Image, ConnectingLines : Map, Meshes : GridSpacing, Rotation, Row, Column, MapType : )

Herror T_gen_grid_rectification_map(const Hobject Image, const Hobject ConnectingLines, Hobject* Map, Hobject* Meshes, const Htuple GridSpacing, const Htuple Rotation, const Htuple Row, const Htuple Column, const Htuple MapType)

void GenGridRectificationMap(const HObject& Image, const HObject& ConnectingLines, HObject* Map, HObject* Meshes, const HTuple& GridSpacing, const HTuple& Rotation, const HTuple& Row, const HTuple& Column, const HTuple& MapType)

HImage HImage::GenGridRectificationMap(const HXLD& ConnectingLines, HXLD* Meshes, Hlong GridSpacing, const HTuple& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const

HImage HImage::GenGridRectificationMap(const HXLD& ConnectingLines, HXLD* Meshes, Hlong GridSpacing, const HString& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const

HImage HImage::GenGridRectificationMap(const HXLD& ConnectingLines, HXLD* Meshes, Hlong GridSpacing, const char* Rotation, const HTuple& Row, const HTuple& Column, const char* MapType) const

HImage HXLD::GenGridRectificationMap(const HImage& Image, HXLD* Meshes, Hlong GridSpacing, const HTuple& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const

HImage HXLD::GenGridRectificationMap(const HImage& Image, HXLD* Meshes, Hlong GridSpacing, const HString& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const

HImage HXLD::GenGridRectificationMap(const HImage& Image, HXLD* Meshes, Hlong GridSpacing, const char* Rotation, const HTuple& Row, const HTuple& Column, const char* MapType) const

HImage HXLDCont::GenGridRectificationMap(const HImage& Image, HXLDCont* Meshes, Hlong GridSpacing, const HTuple& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const

HImage HXLDCont::GenGridRectificationMap(const HImage& Image, HXLDCont* Meshes, Hlong GridSpacing, const HString& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const

HImage HXLDCont::GenGridRectificationMap(const HImage& Image, HXLDCont* Meshes, Hlong GridSpacing, const char* Rotation, const HTuple& Row, const HTuple& Column, const char* MapType) const

HImage HXLDPoly::GenGridRectificationMap(const HImage& Image, HXLDPoly* Meshes, Hlong GridSpacing, const HTuple& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const

HImage HXLDPoly::GenGridRectificationMap(const HImage& Image, HXLDPoly* Meshes, Hlong GridSpacing, const HString& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const

HImage HXLDPoly::GenGridRectificationMap(const HImage& Image, HXLDPoly* Meshes, Hlong GridSpacing, const char* Rotation, const HTuple& Row, const HTuple& Column, const char* MapType) const

HImage HXLDPara::GenGridRectificationMap(const HImage& Image, HXLDPara* Meshes, Hlong GridSpacing, const HTuple& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const

HImage HXLDPara::GenGridRectificationMap(const HImage& Image, HXLDPara* Meshes, Hlong GridSpacing, const HString& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const

HImage HXLDPara::GenGridRectificationMap(const HImage& Image, HXLDPara* Meshes, Hlong GridSpacing, const char* Rotation, const HTuple& Row, const HTuple& Column, const char* MapType) const

HImage HXLDModPara::GenGridRectificationMap(const HImage& Image, HXLDModPara* Meshes, Hlong GridSpacing, const HTuple& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const

HImage HXLDModPara::GenGridRectificationMap(const HImage& Image, HXLDModPara* Meshes, Hlong GridSpacing, const HString& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const

HImage HXLDModPara::GenGridRectificationMap(const HImage& Image, HXLDModPara* Meshes, Hlong GridSpacing, const char* Rotation, const HTuple& Row, const HTuple& Column, const char* MapType) const

HImage HXLDExtPara::GenGridRectificationMap(const HImage& Image, HXLDExtPara* Meshes, Hlong GridSpacing, const HTuple& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const

HImage HXLDExtPara::GenGridRectificationMap(const HImage& Image, HXLDExtPara* Meshes, Hlong GridSpacing, const HString& Rotation, const HTuple& Row, const HTuple& Column, const HString& MapType) const

HImage HXLDExtPara::GenGridRectificationMap(const HImage& Image, HXLDExtPara* Meshes, Hlong GridSpacing, const char* Rotation, const HTuple& Row, const HTuple& Column, const char* MapType) const

static void HOperatorSet.GenGridRectificationMap(HObject image, HObject connectingLines, out HObject map, out HObject meshes, HTuple gridSpacing, HTuple rotation, HTuple row, HTuple column, HTuple mapType)

HImage HImage.GenGridRectificationMap(HXLD connectingLines, out HXLD meshes, int gridSpacing, HTuple rotation, HTuple row, HTuple column, string mapType)

HImage HImage.GenGridRectificationMap(HXLD connectingLines, out HXLD meshes, int gridSpacing, string rotation, HTuple row, HTuple column, string mapType)

HImage HXLD.GenGridRectificationMap(HImage image, out HXLD meshes, int gridSpacing, HTuple rotation, HTuple row, HTuple column, string mapType)

HImage HXLD.GenGridRectificationMap(HImage image, out HXLD meshes, int gridSpacing, string rotation, HTuple row, HTuple column, string mapType)

HImage HXLDCont.GenGridRectificationMap(HImage image, out HXLDCont meshes, int gridSpacing, HTuple rotation, HTuple row, HTuple column, string mapType)

HImage HXLDCont.GenGridRectificationMap(HImage image, out HXLDCont meshes, int gridSpacing, string rotation, HTuple row, HTuple column, string mapType)

HImage HXLDPoly.GenGridRectificationMap(HImage image, out HXLDPoly meshes, int gridSpacing, HTuple rotation, HTuple row, HTuple column, string mapType)

HImage HXLDPoly.GenGridRectificationMap(HImage image, out HXLDPoly meshes, int gridSpacing, string rotation, HTuple row, HTuple column, string mapType)

HImage HXLDPara.GenGridRectificationMap(HImage image, out HXLDPara meshes, int gridSpacing, HTuple rotation, HTuple row, HTuple column, string mapType)

HImage HXLDPara.GenGridRectificationMap(HImage image, out HXLDPara meshes, int gridSpacing, string rotation, HTuple row, HTuple column, string mapType)

HImage HXLDModPara.GenGridRectificationMap(HImage image, out HXLDModPara meshes, int gridSpacing, HTuple rotation, HTuple row, HTuple column, string mapType)

HImage HXLDModPara.GenGridRectificationMap(HImage image, out HXLDModPara meshes, int gridSpacing, string rotation, HTuple row, HTuple column, string mapType)

HImage HXLDExtPara.GenGridRectificationMap(HImage image, out HXLDExtPara meshes, int gridSpacing, HTuple rotation, HTuple row, HTuple column, string mapType)

HImage HXLDExtPara.GenGridRectificationMap(HImage image, out HXLDExtPara meshes, int gridSpacing, string rotation, HTuple row, HTuple column, string mapType)

Beschreibung

gen_grid_rectification_mapgen_grid_rectification_mapGenGridRectificationMapGenGridRectificationMapGenGridRectificationMap berechnet die Abbildung der (typischerweise mit saddle_points_sub_pixsaddle_points_sub_pixSaddlePointsSubPixSaddlePointsSubPixSaddlePointsSubPix) gefundenen Gitterpunkte (RowRowRowRowrow,ColumnColumnColumnColumncolumn) im verzerrten Bild ImageImageImageImageimage in die entsprechenden Gitterpunkte im idealen regelmäßigen Punktgitter. Dazu werden aus den Gitterpunkten (RowRowRowRowrow,ColumnColumnColumnColumncolumn) und den (von connect_grid_pointsconnect_grid_pointsConnectGridPointsConnectGridPointsConnectGridPoints gefundenen) Verbindungslinien ConnectingLinesConnectingLinesConnectingLinesConnectingLinesconnectingLines alle Pfade gebildet, die von ihrem Ausgangspunkt über genau vier verschiedene Verbindungslinien zum Ausgangspunkt zurück führen. Sofern die Gitterpunkte (RowRowRowRowrow, ColumnColumnColumnColumncolumn) und Verbindungslinien ConnectingLinesConnectingLinesConnectingLinesConnectingLinesconnectingLines sinnvolle Eingaben waren, entspricht jede solche 'Masche' genau einem Feld im Entzerrungsgitter. Danach werden die gefundenen Maschen zum gesuchten Punktgitter zusammengesetzt. Das Punktgitter wird, je nachdem, welchen Wert RotationRotationRotationRotationrotation hat, um 0, 90, 180 oder 270 Grad gedreht. Dabei ist zu beachten, dass das gefundene Punktgitter nicht notwendigerweise eine korrekte Ausrichtung aufweisen muss. Wird in RotationRotationRotationRotationrotation 'auto'"auto""auto""auto""auto" übergeben, so wird das Punktgitter so gedreht, dass im entzerrten Bild die schwarze der beiden kreisförmigen Marken im Entzerrungsgitter links neben der weißen zu liegen kommt. Abschließend wird die Abbildung MapMapMapMapmap vom verzerrten ins entzerrte Bild durch Interpolation zwischen den Gitterpunkten berechnet. Jede Gitterzelle, für die die Koordinaten (RowRowRowRowrow,ColumnColumnColumnColumncolumn) aller vier Eckpunkte im verzerrten Bild bekannt sind, wird durch Interpolation auf ein Quadrat von GridSpacingGridSpacingGridSpacingGridSpacinggridSpacing x GridSpacingGridSpacingGridSpacingGridSpacinggridSpacing Pixeln abgebildet.

Der Parameter MapTypeMapTypeMapTypeMapTypemapType gibt an, in welchem Typ die Abbildungsvorschrift gespeichert werden soll. Wurde die bilineare Interpolation ('bilinear'"bilinear""bilinear""bilinear""bilinear") gewählt, so besteht MapMapMapMapmap aus einem Bild mit fünf Kanälen. Der erste Kanal enthält für jedes Pixel des Ergebnisbildes die linearen Koordinaten desjenigen Pixels des Eingabebildes, welches links oberhalb von den transformierten Koordinaten liegt. Die übrigen vier Kanäle enthalten die Gewichte der einzelnen vier Nachbarpixel der transformierten Koordinaten für die bilineare Interpolation in folgender Reihenfolge:

2 3
4 5

Der zweite Kanal z.B. enthält die Gewichte der Pixel, die links oberhalb der transformierten Koordinaten liegen. Wurde 'coord_map_sub_pix'"coord_map_sub_pix""coord_map_sub_pix""coord_map_sub_pix""coord_map_sub_pix" gewählt, besteht MapMapMapMapmap aus einem Vektorfeld, welches für jedes Pixel des Ergebnisbildes die subpixelgenauen Koordinaten im Eingabebild enthält.

gen_grid_rectification_mapgen_grid_rectification_mapGenGridRectificationMapGenGridRectificationMapGenGridRectificationMap liefert auch die gefundenen Maschen, als XLD-Konturen, in MeshesMeshesMeshesMeshesmeshes zurück. Im Gegensatz zu gen_arbitrary_distortion_mapgen_arbitrary_distortion_mapGenArbitraryDistortionMapGenArbitraryDistortionMapGenArbitraryDistortionMap werden gen_grid_rectification_mapgen_grid_rectification_mapGenGridRectificationMapGenGridRectificationMapGenGridRectificationMap und die Vorgängerfunktionen verwendet, falls die Koordinaten (RowRowRowRowrow,ColumnColumnColumnColumncolumn) der Gitterpunkte im verzerrten Bild weder bekannt sind noch aus den Bildinhalten gewonnen werden können.

Wenn die erzeugte Abbildung in einem anderen Programm wiederverwendet werden soll, kann man sie mit dem Operator write_imagewrite_imageWriteImageWriteImageWriteImage als Mehrkanalbild abspeichern (Format: 'tiff'"tiff""tiff""tiff""tiff").

Achtung

Jede Eingabekontur ConnectingLinesConnectingLinesConnectingLinesConnectingLinesconnectingLines muss, so wie bei connect_grid_pointsconnect_grid_pointsConnectGridPointsConnectGridPointsConnectGridPoints beschrieben, das globale Attribut 'bright_dark'"bright_dark""bright_dark""bright_dark""bright_dark" besitzen!

Ausführungsinformationen

Parameter

ImageImageImageImageimage (input_object)  singlechannelimage objectHImageHImageHobject (byte / uint2)

Eingabebild.

ConnectingLinesConnectingLinesConnectingLinesConnectingLinesconnectingLines (input_object)  xld-array objectHXLDHXLDHobject

Eingabekonturen.

MapMapMapMapmap (output_object)  multichannel-image objectHImageHImageHobject * (int4 / uint2 / vector_field)

Bild mit Transformationsdaten.

MeshesMeshesMeshesMeshesmeshes (output_object)  xld-array objectHXLDHXLDHobject *

Ausgabekonturen.

GridSpacingGridSpacingGridSpacingGridSpacinggridSpacing (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Abstand der Gitterpunkte im entzerrten Bild.

Restriktion: GridSpacing > 0

RotationRotationRotationRotationrotation (input_control)  string HTupleHTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)

Drehung, die am Punktgitter vogenommen wird.

Defaultwert: 'auto' "auto" "auto" "auto" "auto"

Werteliste: 0, 90, 180, 270, 'auto'"auto""auto""auto""auto"

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)

MapTypeMapTypeMapTypeMapTypemapType (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Typ der Transformationsdaten.

Defaultwert: 'bilinear' "bilinear" "bilinear" "bilinear" "bilinear"

Werteliste: 'bilinear'"bilinear""bilinear""bilinear""bilinear", 'coord_map_sub_pix'"coord_map_sub_pix""coord_map_sub_pix""coord_map_sub_pix""coord_map_sub_pix"

Ergebnis

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

Vorgänger

connect_grid_pointsconnect_grid_pointsConnectGridPointsConnectGridPointsConnectGridPoints

Nachfolger

map_imagemap_imageMapImageMapImageMapImage

Siehe auch

gen_arbitrary_distortion_mapgen_arbitrary_distortion_mapGenArbitraryDistortionMapGenArbitraryDistortionMapGenArbitraryDistortionMap

Modul

Calibration


KlassenKlassen | | Operatoren