change_radial_distortion_cam_parT_change_radial_distortion_cam_parChangeRadialDistortionCamParChangeRadialDistortionCamPar (Operator)

Name

change_radial_distortion_cam_parT_change_radial_distortion_cam_parChangeRadialDistortionCamParChangeRadialDistortionCamPar — Bestimmen neuer Kameraparameter gemäß eines vorgegebenen radialen Verzeichnungskoeffizienten.

Signatur

change_radial_distortion_cam_par( : : Mode, CamParamIn, DistortionCoeffs : CamParamOut)

Herror T_change_radial_distortion_cam_par(const Htuple Mode, const Htuple CamParamIn, const Htuple DistortionCoeffs, Htuple* CamParamOut)

void ChangeRadialDistortionCamPar(const HTuple& Mode, const HTuple& CamParamIn, const HTuple& DistortionCoeffs, HTuple* CamParamOut)

HCamPar HCamPar::ChangeRadialDistortionCamPar(const HString& Mode, const HTuple& DistortionCoeffs) const

HCamPar HCamPar::ChangeRadialDistortionCamPar(const HString& Mode, double DistortionCoeffs) const

HCamPar HCamPar::ChangeRadialDistortionCamPar(const char* Mode, double DistortionCoeffs) const

HCamPar HCamPar::ChangeRadialDistortionCamPar(const wchar_t* Mode, double DistortionCoeffs) const   (Nur Windows)

static void HOperatorSet.ChangeRadialDistortionCamPar(HTuple mode, HTuple camParamIn, HTuple distortionCoeffs, out HTuple camParamOut)

HCamPar HCamPar.ChangeRadialDistortionCamPar(string mode, HTuple distortionCoeffs)

HCamPar HCamPar.ChangeRadialDistortionCamPar(string mode, double distortionCoeffs)

Beschreibung

change_radial_distortion_cam_parchange_radial_distortion_cam_parChangeRadialDistortionCamParChangeRadialDistortionCamParChangeRadialDistortionCamPar modifiziert die internen Kameraparameter CamParamInCamParamInCamParamInCamParamIncamParamIn gemäß den vorgegebenen radialen Verzeichnungskoeffizienten DistortionCoeffsDistortionCoeffsDistortionCoeffsDistortionCoeffsdistortionCoeffs und gibt sie in CamParamOutCamParamOutCamParamOutCamParamOutcamParamOut 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 ModeModeModeModemode werden dabei folgende Modi unterschieden:

'fixed'"fixed""fixed""fixed""fixed"

Die Kameraparameter bleiben bis auf die radialen Verzeichnungskoeffizienten unverändert. Dies bewirkt i.A. eine Änderung des Bildausschnittes.

'fullsize'"fullsize""fullsize""fullsize""fullsize"

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.

'adaptive'"adaptive""adaptive""adaptive""adaptive"

Ein Kompromiss zwischen den beiden anderen Modi: Der Bildausschnitt wird etwas verkleinert, um undefinierte Bildbereiche zu vermeiden. Hier werden dieselben Parameter wie bei 'fullsize'"fullsize""fullsize""fullsize""fullsize" modifiziert.

'preserve_resolution'"preserve_resolution""preserve_resolution""preserve_resolution""preserve_resolution"

Wie beim Modus 'fullsize'"fullsize""fullsize""fullsize""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'"fullsize""fullsize""fullsize""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 CamParamOutCamParamOutCamParamOutCamParamOutcamParamOut gleich DistortionCoeffsDistortionCoeffsDistortionCoeffsDistortionCoeffsdistortionCoeffs. 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 DistortionCoeffsDistortionCoeffsDistortionCoeffsDistortionCoeffsdistortionCoeffs ü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 CamParamInCamParamInCamParamInCamParamIncamParamIn.

Ausführungsinformationen

Parameter

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

Modus

Defaultwert: 'adaptive' "adaptive" "adaptive" "adaptive" "adaptive"

Wertevorschläge: 'fullsize'"fullsize""fullsize""fullsize""fullsize", 'adaptive'"adaptive""adaptive""adaptive""adaptive", 'fixed'"fixed""fixed""fixed""fixed", 'preserve_resolution'"preserve_resolution""preserve_resolution""preserve_resolution""preserve_resolution"

CamParamInCamParamInCamParamInCamParamIncamParamIn (input_control)  campar HCamPar, HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Interne Kameraparameter (Original).

DistortionCoeffsDistortionCoeffsDistortionCoeffsDistortionCoeffsdistortionCoeffs (input_control)  real(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Gewünschte radiale Verzeichnungskoeffizienten.

Parameteranzahl: DistortionCoeffs == 1 || DistortionCoeffs == 5

Defaultwert: 0.0

CamParamOutCamParamOutCamParamOutCamParamOutcamParamOut (output_control)  campar HCamPar, HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Interne Kameraparameter (modifiziert).

Ergebnis

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

Vorgänger

camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibration, read_cam_parread_cam_parReadCamParReadCamParReadCamPar

Nachfolger

change_radial_distortion_imagechange_radial_distortion_imageChangeRadialDistortionImageChangeRadialDistortionImageChangeRadialDistortionImage, change_radial_distortion_contours_xldchange_radial_distortion_contours_xldChangeRadialDistortionContoursXldChangeRadialDistortionContoursXldChangeRadialDistortionContoursXld, gen_radial_distortion_mapgen_radial_distortion_mapGenRadialDistortionMapGenRadialDistortionMapGenRadialDistortionMap

Siehe auch

camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibration, read_cam_parread_cam_parReadCamParReadCamParReadCamPar, change_radial_distortion_imagechange_radial_distortion_imageChangeRadialDistortionImageChangeRadialDistortionImageChangeRadialDistortionImage, change_radial_distortion_contours_xldchange_radial_distortion_contours_xldChangeRadialDistortionContoursXldChangeRadialDistortionContoursXldChangeRadialDistortionContoursXld, change_radial_distortion_pointschange_radial_distortion_pointsChangeRadialDistortionPointsChangeRadialDistortionPointsChangeRadialDistortionPoints

Modul

Calibration