| Operatoren |
gen_radial_distortion_map — Berechnen der Abbildung von Bildern aufgrund wechselnder radialer Verzeichnung.
gen_radial_distortion_map( : Map : CamParamIn, CamParamOut, MapType : )
gen_radial_distortion_map berechnet die Abbildung von Bildern aufgrund wechselnder radialer Verzeichnung gemäß den übergebenen internen Kameraparametern CamParamIn bzw. CamParamOut, die z.B. durch eine Kamerakalibrierung mit Hilfe von calibrate_cameras bestimmt wurden. CamParamIn bzw. CamParamOut stellen dabei die alten bzw. neuen internen Kameraparameter dar, die u.a. auch die alte bzw. neue radiale Verzeichnung enthalten (siehe auch calibrate_cameras für die Reihenfolge der Parameter und das zu Grunde liegende Kameramodell). Zur Berechnung der Abbildung wird jedes Pixel im potentiellen Ausgabebild mittels CamParamOut in die Bildebene zurückgerechnet und dann mittels CamParamIn in eine Subpixel-Position im Eingabebild überführt. Bitte beachten Sie, dass gen_radial_distortion_map nur Flächenkameras unterstützt.
Die Abbildungsvorschrift wird in dem Ausgabebild Map gespeichert, dessen Größe durch die Kameraparameter CamParamOut festgelegt ist und somit die Größe der später mit map_image transformierten Ergebnisbilder bestimmt. Die Größe der mit map_image zu tranformierenden Bilder wird durch die Kameraparameter CamParamIn bestimmt. Der Parameter MapType gibt an, in welchem Typ die Abbildungsvorschrift gespeichert werden soll. Wurde 'nearest_neighbor' gewählt, so besteht Map 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') gewählt, so besteht Map 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' gewählt, besteht Map aus einem Vektorfeld, welches für jedes Pixel des Ergebnisbildes die subpixelgenauen Koordinaten im Eingabebild enthält.
Wird zur Bestimmung der modifizierten Kameraparameter CamParamOut die Routine change_radial_distortion_cam_par 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_map und map_image wesentlich effizienter als der Operator change_radial_distortion_image, 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_image als Mehrkanalbild abspeichern (Format: 'tiff').
Bild mit den Abbildungsdaten.
Alte Kameraparameter.
Parameteranzahl: CamParamIn == 8 || CamParamIn == 10 || CamParamIn == 12 || CamParamIn == 14
Neue Kameraparameter.
Parameteranzahl: CamParamOut == 8 || CamParamOut == 10 || CamParamOut == 12 || CamParamOut == 14
Typ der Abbildungsdaten.
Defaultwert: 'bilinear'
Werteliste: 'bilinear', 'coord_map_sub_pix', 'nearest_neighbor'
Sind die Parameterwerte korrekt, dann liefert gen_radial_distortion_map den Wert 2 (H_MSG_TRUE).
change_radial_distortion_cam_par, camera_calibration, hand_eye_calibration
change_radial_distortion_image
change_radial_distortion_contours_xld
Calibration
| Operatoren |