change_radial_distortion_imageT_change_radial_distortion_imageChangeRadialDistortionImageChangeRadialDistortionImage (Operator)

Name

change_radial_distortion_imageT_change_radial_distortion_imageChangeRadialDistortionImageChangeRadialDistortionImage — Verändern der radialen Verzeichnung eines Bildes.

Signatur

change_radial_distortion_image(Image, Region : ImageRectified : CamParamIn, CamParamOut : )

Herror T_change_radial_distortion_image(const Hobject Image, const Hobject Region, Hobject* ImageRectified, const Htuple CamParamIn, const Htuple CamParamOut)

void ChangeRadialDistortionImage(const HObject& Image, const HObject& Region, HObject* ImageRectified, const HTuple& CamParamIn, const HTuple& CamParamOut)

HImage HImage::ChangeRadialDistortionImage(const HRegion& Region, const HCamPar& CamParamIn, const HCamPar& CamParamOut) const

HImage HCamPar::ChangeRadialDistortionImage(const HImage& Image, const HRegion& Region, const HCamPar& CamParamOut) const

static void HOperatorSet.ChangeRadialDistortionImage(HObject image, HObject region, out HObject imageRectified, HTuple camParamIn, HTuple camParamOut)

HImage HImage.ChangeRadialDistortionImage(HRegion region, HCamPar camParamIn, HCamPar camParamOut)

HImage HCamPar.ChangeRadialDistortionImage(HImage image, HRegion region, HCamPar camParamOut)

Beschreibung

change_radial_distortion_imagechange_radial_distortion_imageChangeRadialDistortionImageChangeRadialDistortionImageChangeRadialDistortionImage verändert die radiale Verzeichnung des Eingabebildes ImageImageImageImageimage gemäß den übergebenen internen Kameraparametern CamParamInCamParamInCamParamInCamParamIncamParamIn bzw. CamParamOutCamParamOutCamParamOutCamParamOutcamParamOut. Dazu wird jedes Pixel im Ausgabebild, das innerhalb der Region RegionRegionRegionRegionregion liegt, mittels CamParamOutCamParamOutCamParamOutCamParamOutcamParamOut in die Bildebene zurückgerechnet und dann mittels CamParamInCamParamInCamParamInCamParamIncamParamIn in ein Subpixel im Eingabebild überführt. Der resultierende Grauwert wird aus dem Eingabebild durch bilineare Interpolation abgeleitet. Liegt das Subpixel außerhalb des Eingabebildes, wird das Pixel im Ausgabebild auf 'schwarz' gesetzt und aus der Ausgaberegion entfernt.

Sollen die Grauwerte für alle Pixel im Ausgabebild berechnet werden, so genügt es, in RegionRegionRegionRegionregion ein leeres Objekt zu übergeben (das vorher z.B. mit gen_empty_objgen_empty_objGenEmptyObjGenEmptyObjGenEmptyObj erzeugt worden ist). Dies ist besonders dann hilfreich, wenn sich die Größe des Ausgabebildes von der des Eingabebildes unterscheidet und somit nicht einfach die Region des Eingabebildes in RegionRegionRegionRegionregion übergeben werden kann.

Wird zur Bestimmung der modifizierten Kameraparameter CamParamOutCamParamOutCamParamOutCamParamOutcamParamOut die Routine change_radial_distortion_cam_parchange_radial_distortion_cam_parChangeRadialDistortionCamParChangeRadialDistortionCamParChangeRadialDistortionCamPar verwendet, entspricht das Ausgabebild ImageRectifiedImageRectifiedImageRectifiedImageRectifiedimageRectified dem Eingabebild bei einer Aufnahmeoptik mit geänderter radialer Verzeichnung . Für wird das Bild radial entzerrt. Eine etwaige Lagebestimmung für die Kamera (externe Kameraparameter) wird dadurch nicht beeinflusst.

Beachten Sie, dass change_radial_distortion_imagechange_radial_distortion_imageChangeRadialDistortionImageChangeRadialDistortionImageChangeRadialDistortionImage nicht mit Zeilenkameras mit perspektivischen Objektiven funktioniert. Alternativ kann image_to_world_planeimage_to_world_planeImageToWorldPlaneImageToWorldPlaneImageToWorldPlane verwendet werden.

Achtung

change_radial_distortion_imagechange_radial_distortion_imageChangeRadialDistortionImageChangeRadialDistortionImageChangeRadialDistortionImage kann auf OpenCL Geräten ausgeführt werden, wenn das Eingangsbild die maximale Größe für Bildobjekte des ausgewählten Gerätes nicht überschreitet. Da die OpenCL Implementierung mit einfacher Genauigkeit rechnet, kann das Ergebnis von dem der CPU Implementierung abweichen.

Ausführungsinformationen

Parameter

ImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHobject (byte / uint2 / real)

Originalbild.

RegionRegionRegionRegionregion (input_object)  region objectHRegionHRegionHobject

Interessierender Bildbereich in ImageRectifiedImageRectifiedImageRectifiedImageRectifiedimageRectified.

ImageRectifiedImageRectifiedImageRectifiedImageRectifiedimageRectified (output_object)  (multichannel-)image(-array) objectHImageHImageHobject * (byte / uint2 / real)

Ausgabebild mit veränderter radialer Verzeichnung.

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

Interne Kameraparameter für ImageImageImageImageimage.

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

Interne Kameraparameter für ImageRectifiedImageRectifiedImageRectifiedImageRectifiedimageRectified.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert change_radial_distortion_imagechange_radial_distortion_imageChangeRadialDistortionImageChangeRadialDistortionImageChangeRadialDistortionImage den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (kein Eingabebild vorhanden lässt sich mittels set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

change_radial_distortion_cam_parchange_radial_distortion_cam_parChangeRadialDistortionCamParChangeRadialDistortionCamParChangeRadialDistortionCamPar, read_imageread_imageReadImageReadImageReadImage, grab_imagegrab_imageGrabImageGrabImageGrabImage

Nachfolger

edges_imageedges_imageEdgesImageEdgesImageEdgesImage, thresholdthresholdThresholdThresholdThreshold

Siehe auch

change_radial_distortion_cam_parchange_radial_distortion_cam_parChangeRadialDistortionCamParChangeRadialDistortionCamParChangeRadialDistortionCamPar, camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibration, read_cam_parread_cam_parReadCamParReadCamParReadCamPar, change_radial_distortion_contours_xldchange_radial_distortion_contours_xldChangeRadialDistortionContoursXldChangeRadialDistortionContoursXldChangeRadialDistortionContoursXld, change_radial_distortion_pointschange_radial_distortion_pointsChangeRadialDistortionPointsChangeRadialDistortionPointsChangeRadialDistortionPoints

Modul

Calibration