gen_arbitrary_distortion_mapT_gen_arbitrary_distortion_mapGenArbitraryDistortionMapGenArbitraryDistortionMapgen_arbitrary_distortion_map (Operator)

Name

gen_arbitrary_distortion_mapT_gen_arbitrary_distortion_mapGenArbitraryDistortionMapGenArbitraryDistortionMapgen_arbitrary_distortion_map — Berechnet die Abbildung von einem beliebig verzerrten Bild ins entzerrte Bild.

Signatur

gen_arbitrary_distortion_map( : Map : GridSpacing, Row, Column, GridWidth, ImageWidth, ImageHeight, MapType : )

Herror T_gen_arbitrary_distortion_map(Hobject* Map, const Htuple GridSpacing, const Htuple Row, const Htuple Column, const Htuple GridWidth, const Htuple ImageWidth, const Htuple ImageHeight, const Htuple MapType)

void GenArbitraryDistortionMap(HObject* Map, const HTuple& GridSpacing, const HTuple& Row, const HTuple& Column, const HTuple& GridWidth, const HTuple& ImageWidth, const HTuple& ImageHeight, const HTuple& MapType)

static HImage HMisc::GenArbitraryDistortionMap(Hlong GridSpacing, const HTuple& Row, const HTuple& Column, Hlong GridWidth, Hlong ImageWidth, Hlong ImageHeight, const HString& MapType)

static HImage HMisc::GenArbitraryDistortionMap(Hlong GridSpacing, const HTuple& Row, const HTuple& Column, Hlong GridWidth, Hlong ImageWidth, Hlong ImageHeight, const char* MapType)

static HImage HMisc::GenArbitraryDistortionMap(Hlong GridSpacing, const HTuple& Row, const HTuple& Column, Hlong GridWidth, Hlong ImageWidth, Hlong ImageHeight, const wchar_t* MapType)   (Nur Windows)

static void HOperatorSet.GenArbitraryDistortionMap(out HObject map, HTuple gridSpacing, HTuple row, HTuple column, HTuple gridWidth, HTuple imageWidth, HTuple imageHeight, HTuple mapType)

static HImage HMisc.GenArbitraryDistortionMap(int gridSpacing, HTuple row, HTuple column, int gridWidth, int imageWidth, int imageHeight, string mapType)

def gen_arbitrary_distortion_map(grid_spacing: int, row: Sequence[float], column: Sequence[float], grid_width: int, image_width: int, image_height: int, map_type: str) -> HObject

Beschreibung

gen_arbitrary_distortion_mapgen_arbitrary_distortion_mapGenArbitraryDistortionMapGenArbitraryDistortionMapGenArbitraryDistortionMapgen_arbitrary_distortion_map berechnet die Abbildung MapMapMapMapmapmap von einem beliebig verzerrten ins entzerrte Bild. Dazu beschreiben die Koordinaten RowRowRowRowrowrow und ColumnColumnColumnColumncolumncolumn ein (verzerrtes) Punktgitter, das im entzerrten Bild auf ein regelmäßiges Gitter abgebildet wird. Die Koordinaten der Gitterpunkte sind, entsprechend ihrer Anordnung im Punktgitter, zeilenweise von oben nach unten zu übergeben. GridWidthGridWidthGridWidthGridWidthgridWidthgrid_width ist die Breite des Punktgitters in Gitterpunkten. GridSpacingGridSpacingGridSpacingGridSpacinggridSpacinggrid_spacing ist der Abstand zweier benachbarter Gitterpunkte im entzerrten Bild. Da Gitterpunkte immer in die Mitte der entsprechenden Pixel projiziert werden, belegt eine Gitterzelle (GridSpacingGridSpacingGridSpacingGridSpacinggridSpacinggrid_spacing+1) x (GridSpacingGridSpacingGridSpacingGridSpacinggridSpacinggrid_spacing+1) Pixel. Allerdings überlappen sich benachbarte Gitterzellen auch auf einem Pixel Breite.

Darüber hinaus müssen die Breite ImageWidthImageWidthImageWidthImageWidthimageWidthimage_width und Höhe ImageHeightImageHeightImageHeightImageHeightimageHeightimage_height der zu entzerrenden Bilder übergeben werden, um die Abbildung MapMapMapMapmapmap zu berechnen.

Der Parameter MapTypeMapTypeMapTypeMapTypemapTypemap_type gibt an, in welchem Typ die Abbildungsvorschrift gespeichert werden soll. Wurde die bilineare Interpolation ('bilinear'"bilinear""bilinear""bilinear""bilinear""bilinear") gewählt, so besteht MapMapMapMapmapmap 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""coord_map_sub_pix" gewählt, besteht MapMapMapMapmapmap aus einem Vektorfeld, welches für jedes Pixel des Ergebnisbildes die subpixelgenauen Koordinaten im Eingabebild enthält.

Aus dem Obigen geht hervor, dass zur Interpolation des Grauwertes eines Pixels im entzerrten Bild immer alle vier benachbarte Pixel im verzerrten Bild benötigt werden. Liegt mindestens eines dieser benachbarten Pixel außerhalb des verzerrten Bildes, so kann der Grauwert nicht berechnet werden. In der resultierenden MapMapMapMapmapmap wird der Definitionsbereich entsprechend eingeschränkt.

Im Gegensatz zu gen_grid_rectification_mapgen_grid_rectification_mapGenGridRectificationMapGenGridRectificationMapGenGridRectificationMapgen_grid_rectification_map wird gen_arbitrary_distortion_mapgen_arbitrary_distortion_mapGenArbitraryDistortionMapGenArbitraryDistortionMapGenArbitraryDistortionMapgen_arbitrary_distortion_map verwendet, falls die Koordinaten (RowRowRowRowrowrow,ColumnColumnColumnColumncolumncolumn) der Gitterpunkte im verzerrten Bild schon bekannt sind bzw. die relevanten Bildinhalte schon reguläre, gitterförmige Strukturen aufweisen, aus denen die Koordinaten gewonnen werden können.

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

Ausführungsinformationen

Parameter

MapMapMapMapmapmap (output_object)  multichannel-image objectHImageHObjectHImageHobject * (int4 / uint2 / vector_field)

Bild mit Transformationsdaten.

GridSpacingGridSpacingGridSpacingGridSpacinggridSpacinggrid_spacing (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Abstand der Gitterpunkte im entzerrten Bild.

Restriktion: GridSpacing > 0

RowRowRowRowrowrow (input_control)  point.y-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Zeilenkoordinaten der Gitterpunkte im verzerrten Bild.

ColumnColumnColumnColumncolumncolumn (input_control)  point.x-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Spaltenkoordinaten der Gitterpunkte im verzerrten Bild.

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

GridWidthGridWidthGridWidthGridWidthgridWidthgrid_width (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Breite des Punktgitters (Anzahl der Gitterpunkte).

ImageWidthImageWidthImageWidthImageWidthimageWidthimage_width (input_control)  extent.x HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Breite der zu entzerrenden Bilder.

Restriktion: ImageWidth > 0

ImageHeightImageHeightImageHeightImageHeightimageHeightimage_height (input_control)  extent.y HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Höhe der zu entzerrenden Bilder.

Restriktion: ImageHeight > 0

MapTypeMapTypeMapTypeMapTypemapTypemap_type (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Typ der Transformationsdaten.

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

Werteliste: 'bilinear'"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""coord_map_sub_pix"

Ergebnis

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

Nachfolger

map_imagemap_imageMapImageMapImageMapImagemap_image

Siehe auch

create_rectification_gridcreate_rectification_gridCreateRectificationGridCreateRectificationGridCreateRectificationGridcreate_rectification_grid, find_rectification_gridfind_rectification_gridFindRectificationGridFindRectificationGridFindRectificationGridfind_rectification_grid, connect_grid_pointsconnect_grid_pointsConnectGridPointsConnectGridPointsConnectGridPointsconnect_grid_points, gen_grid_rectification_mapgen_grid_rectification_mapGenGridRectificationMapGenGridRectificationMapGenGridRectificationMapgen_grid_rectification_map

Modul

Calibration