change_radial_distortion_cam_par
— Bestimmen neuer Kameraparameter gemäß eines vorgegebenen radialen
Verzeichnungskoeffizienten.
change_radial_distortion_cam_par( : : Mode, CamParamIn, DistortionCoeffs : CamParamOut)
change_radial_distortion_cam_par
modifiziert die internen
Kameraparameter CamParamIn
gemäß den vorgegebenen radialen
Verzeichnungskoeffizienten DistortionCoeffs
und gibt sie in
CamParamOut
zurück. Der Operator kann nur für
Flächenkameras (mit beliebigen Objektivtypen) und für Zeilenkameras
mit telezentrischen Objektiven verwendet werden. Zeilenkameras mit
perspektivischen Objektiven werden nicht unterstützt.
Über den Parameter Mode
werden dabei folgende Modi
unterschieden:
Die Kameraparameter bleiben bis auf die radialen Verzeichnungskoeffizienten unverändert. Dies bewirkt i.A. eine Änderung des Bildausschnittes.
Für Flächenkameras werden die Skalierungsfaktoren und und der Hauptpunkt so angepasst, dass der Bildausschnitt unverändert bleibt. Für Zeilenkameras mit telezentrischen Objektiven werden der Skalierungsfaktor , der Hauptpunkt und die -Komponente des Bewegungsvektors angepasst, um diesen Effekt zu erzielen. Konkret wird dabei sichergestellt, dass alle Bildpunkte des Originalkamerabildes auch im modifizierten (entzerrten) Kamerabild abgebildet werden. Im Allgemeinen entstehen dabei undefinierte Pixel im modifizierten Bild.
Ein Kompromiss zwischen den beiden anderen Modi: Der Bildausschnitt wird etwas verkleinert, um undefinierte Bildbereiche zu vermeiden. Hier werden dieselben Parameter wie bei 'fullsize' modifiziert.
Wie beim Modus 'fullsize' wird sichergestellt, dass alle Bildpunkte des Originalkamerabildes auch im modifizierten (entzerrten) Kamerabild abgebildet werden. Für Flächenkameras werden die Skalierungsfaktoren und und der Hauptpunkt so angepasst, dass der Bildausschnitt unverändert bleibt. Für Zeilenkameras mit telezentrischen Objektiven werden der Skalierungsfaktor , der Hauptpunkt und ggf. die -Komponente des Bewegungsvektors angepasst, um diesen Effekt zu erzielen. Im Allgemeinen entstehen dabei undefinierte Pixel im modifizierten Bild. Im Unterschied zum Modus 'fullsize' wird jedoch zusätzlich die Bildgröße so erhöht, dass sich die Bildauflösung in keinem Teil des Bildes verringert.
In allen Fällen sind die Verzeichnungskoeffizienten in den
Ausgabekameraparametern CamParamOut
gleich
DistortionCoeffs
. Für telezentrische Zeilenkameras
beeinflusst der Bewegungsvektor auch die wahrgenommene
Verzeichnung. So erzeugt ein zum Beispiel
Pixel mit schräggestellten Achsen. Weiterhin hat zur Folge,
dass die Pixel nicht quadratisch erscheinen. Daher können für
telezentrische Zeilenkameras bis zu drei weitere Komponenten
zusätzlich zu bzw. in DistortionCoeffs
übergeben werden. Diese spezifizieren die neuen -,
- und -Komponenten des
Bewegungsvektors.
Die Rückrechnung der Pixel im modifizierten Bild in die Bildebene
gemäß der neuen internen Kameraparameter ergibt die gleichen Punkte
wie die Rückrechnung der korrespondierenden Subpixel im Originalbild
gemäß der alten internen Kameraparameter CamParamIn
.
Mode
(input_control) string →
(string)
Modus
Defaultwert: 'adaptive'
Wertevorschläge: 'fullsize' , 'adaptive' , 'fixed' , 'preserve_resolution'
CamParamIn
(input_control) campar →
(real / integer / string)
Interne Kameraparameter (Original).
DistortionCoeffs
(input_control) real(-array) →
(real / integer)
Gewünschte radiale Verzeichnungskoeffizienten.
Parameteranzahl: DistortionCoeffs == 1 || DistortionCoeffs == 5
Defaultwert: 0.0
CamParamOut
(output_control) campar →
(real / integer / string)
Interne Kameraparameter (modifiziert).
Sind die Parameterwerte korrekt, dann liefert
change_radial_distortion_cam_par
den Wert 2 (H_MSG_TRUE).
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
camera_calibration
,
read_cam_par
change_radial_distortion_image
,
change_radial_distortion_contours_xld
,
gen_radial_distortion_map
camera_calibration
,
read_cam_par
,
change_radial_distortion_image
,
change_radial_distortion_contours_xld
,
change_radial_distortion_points
Calibration