KlassenKlassenKlassenKlassen | | | | Operatoren

gen_radial_distortion_mapT_gen_radial_distortion_mapGenRadialDistortionMapgen_radial_distortion_mapGenRadialDistortionMapGenRadialDistortionMap (Operator)

Name

gen_radial_distortion_mapT_gen_radial_distortion_mapGenRadialDistortionMapgen_radial_distortion_mapGenRadialDistortionMapGenRadialDistortionMap — Berechnen der Abbildung von Bildern aufgrund wechselnder radialer Verzeichnung.

Signatur

gen_radial_distortion_map( : Map : CamParamIn, CamParamOut, MapType : )

Herror T_gen_radial_distortion_map(Hobject* Map, const Htuple CamParamIn, const Htuple CamParamOut, const Htuple MapType)

Herror gen_radial_distortion_map(Hobject* Map, const HTuple& CamParamIn, const HTuple& CamParamOut, const HTuple& MapType)

HImage HImage::GenRadialDistortionMap(const HTuple& CamParamIn, const HTuple& CamParamOut, const HTuple& MapType)

void GenRadialDistortionMap(HObject* Map, const HTuple& CamParamIn, const HTuple& CamParamOut, const HTuple& MapType)

void HImage::GenRadialDistortionMap(const HTuple& CamParamIn, const HTuple& CamParamOut, const HString& MapType)

void HImage::GenRadialDistortionMap(const HTuple& CamParamIn, const HTuple& CamParamOut, const char* MapType)

void HOperatorSetX.GenRadialDistortionMap(
[out] IHUntypedObjectX*Map, [in] VARIANT CamParamIn, [in] VARIANT CamParamOut, [in] VARIANT MapType)

void HImageX.GenRadialDistortionMap(
[in] VARIANT CamParamIn, [in] VARIANT CamParamOut, [in] BSTR MapType)

static void HOperatorSet.GenRadialDistortionMap(out HObject map, HTuple camParamIn, HTuple camParamOut, HTuple mapType)

void HImage.GenRadialDistortionMap(HTuple camParamIn, HTuple camParamOut, string mapType)

Beschreibung

gen_radial_distortion_mapgen_radial_distortion_mapGenRadialDistortionMapgen_radial_distortion_mapGenRadialDistortionMapGenRadialDistortionMap berechnet die Abbildung von Bildern aufgrund wechselnder radialer Verzeichnung gemäß den übergebenen internen Kameraparametern CamParamInCamParamInCamParamInCamParamInCamParamIncamParamIn bzw. CamParamOutCamParamOutCamParamOutCamParamOutCamParamOutcamParamOut, die z.B. durch eine Kamerakalibrierung mit Hilfe von calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras bestimmt wurden. CamParamInCamParamInCamParamInCamParamInCamParamIncamParamIn bzw. CamParamOutCamParamOutCamParamOutCamParamOutCamParamOutcamParamOut stellen dabei die alten bzw. neuen internen Kameraparameter dar, die u.a. auch die alte bzw. neue radiale Verzeichnung enthalten (siehe auch calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras für die Reihenfolge der Parameter und das zu Grunde liegende Kameramodell). Zur Berechnung der Abbildung wird jedes Pixel im potentiellen Ausgabebild mittels CamParamOutCamParamOutCamParamOutCamParamOutCamParamOutcamParamOut in die Bildebene zurückgerechnet und dann mittels CamParamInCamParamInCamParamInCamParamInCamParamIncamParamIn in eine Subpixel-Position im Eingabebild überführt. Bitte beachten Sie, dass gen_radial_distortion_mapgen_radial_distortion_mapGenRadialDistortionMapgen_radial_distortion_mapGenRadialDistortionMapGenRadialDistortionMap nur Flächenkameras unterstützt.

Die Abbildungsvorschrift wird in dem Ausgabebild MapMapMapMapMapmap gespeichert, dessen Größe durch die Kameraparameter CamParamOutCamParamOutCamParamOutCamParamOutCamParamOutcamParamOut festgelegt ist und somit die Größe der später mit map_imagemap_imageMapImagemap_imageMapImageMapImage transformierten Ergebnisbilder bestimmt. Die Größe der mit map_imagemap_imageMapImagemap_imageMapImageMapImage zu tranformierenden Bilder wird durch die Kameraparameter CamParamInCamParamInCamParamInCamParamInCamParamIncamParamIn bestimmt. Der Parameter MapTypeMapTypeMapTypeMapTypeMapTypemapType gibt an, in welchem Typ die Abbildungsvorschrift gespeichert werden soll. Wurde 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor" gewählt, so besteht MapMapMapMapMapmap aus einem Bild mit einem Kanal, in dem für jedes Pixel des Ergebnisbildes die linearen Koordinaten desjenigen Pixels des Eingabebildes stehen, welches den transformierten Koordinaten am nächsten liegt. 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.

Wird zur Bestimmung der modifizierten Kameraparameter CamParamOutCamParamOutCamParamOutCamParamOutCamParamOutcamParamOut die Routine change_radial_distortion_cam_parchange_radial_distortion_cam_parChangeRadialDistortionCamParchange_radial_distortion_cam_parChangeRadialDistortionCamParChangeRadialDistortionCamPar verwendet, beschreibt die Abbildung eine Aufnahmeoptik mit geänderter radialer Verzeichnung . Für entspricht die Abbildung somit einer radialen Entzerrung. Eine etwaige Lagebestimmung für die Kamera (externe Kameraparameter) wird dadurch nicht beeinflusst.

Sollen mehrere Bilder unter Verwendung derselben internen Kameraparameter transformiert werden, so ist die Kombination aus gen_radial_distortion_mapgen_radial_distortion_mapGenRadialDistortionMapgen_radial_distortion_mapGenRadialDistortionMapGenRadialDistortionMap und map_imagemap_imageMapImagemap_imageMapImageMapImage wesentlich effizienter als der Operator change_radial_distortion_imagechange_radial_distortion_imageChangeRadialDistortionImagechange_radial_distortion_imageChangeRadialDistortionImageChangeRadialDistortionImage, da die Abbildungsvorschrift nur einmal berechnet werden muss.

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

Parallelisierung

Parameter

MapMapMapMapMapmap (output_object)  (multichannel-)image objectHImageHImageHImageHImageXHobject * (int4 / int8 / uint2 / vector_field)

Bild mit den Abbildungsdaten.

CamParamInCamParamInCamParamInCamParamInCamParamIncamParamIn (input_control)  number-array HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Alte Kameraparameter.

Parameteranzahl: CamParamIn == 8 || CamParamIn == 10 || CamParamIn == 12 || CamParamIn == 14

CamParamOutCamParamOutCamParamOutCamParamOutCamParamOutcamParamOut (input_control)  number-array HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Neue Kameraparameter.

Parameteranzahl: CamParamOut == 8 || CamParamOut == 10 || CamParamOut == 12 || CamParamOut == 14

MapTypeMapTypeMapTypeMapTypeMapTypemapType (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Typ der Abbildungsdaten.

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", 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor"

Ergebnis

Sind die Parameterwerte korrekt, dann liefert gen_radial_distortion_mapgen_radial_distortion_mapGenRadialDistortionMapgen_radial_distortion_mapGenRadialDistortionMapGenRadialDistortionMap den Wert 2 (H_MSG_TRUE).

Vorgänger

change_radial_distortion_cam_parchange_radial_distortion_cam_parChangeRadialDistortionCamParchange_radial_distortion_cam_parChangeRadialDistortionCamParChangeRadialDistortionCamPar, camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration, hand_eye_calibrationhand_eye_calibrationHandEyeCalibrationhand_eye_calibrationHandEyeCalibrationHandEyeCalibration

Nachfolger

map_imagemap_imageMapImagemap_imageMapImageMapImage

Alternativen

change_radial_distortion_imagechange_radial_distortion_imageChangeRadialDistortionImagechange_radial_distortion_imageChangeRadialDistortionImageChangeRadialDistortionImage

Siehe auch

change_radial_distortion_contours_xldchange_radial_distortion_contours_xldChangeRadialDistortionContoursXldchange_radial_distortion_contours_xldChangeRadialDistortionContoursXldChangeRadialDistortionContoursXld

Modul

Calibration


KlassenKlassenKlassenKlassen | | | | Operatoren