change_radial_distortion_imageT_change_radial_distortion_imageChangeRadialDistortionImageChangeRadialDistortionImagechange_radial_distortion_image (Operator)

Name

change_radial_distortion_imageT_change_radial_distortion_imageChangeRadialDistortionImageChangeRadialDistortionImagechange_radial_distortion_image — 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)

def change_radial_distortion_image(image: HObject, region: HObject, cam_param_in: Sequence[Union[int, float, str]], cam_param_out: Sequence[Union[int, float, str]]) -> HObject

Beschreibung

change_radial_distortion_imagechange_radial_distortion_imageChangeRadialDistortionImageChangeRadialDistortionImageChangeRadialDistortionImagechange_radial_distortion_image verändert die radiale Verzeichnung des Eingabebildes ImageImageImageImageimageimage gemäß den übergebenen internen Kameraparametern CamParamInCamParamInCamParamInCamParamIncamParamIncam_param_in bzw. CamParamOutCamParamOutCamParamOutCamParamOutcamParamOutcam_param_out. Dazu wird jedes Pixel im Ausgabebild, das innerhalb der Region RegionRegionRegionRegionregionregion liegt, mittels CamParamOutCamParamOutCamParamOutCamParamOutcamParamOutcam_param_out in die Bildebene zurückgerechnet und dann mittels CamParamInCamParamInCamParamInCamParamIncamParamIncam_param_in 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 RegionRegionRegionRegionregionregion ein leeres Objekt zu übergeben (das vorher z.B. mit gen_empty_objgen_empty_objGenEmptyObjGenEmptyObjGenEmptyObjgen_empty_obj 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 RegionRegionRegionRegionregionregion übergeben werden kann.

Wird zur Bestimmung der modifizierten Kameraparameter CamParamOutCamParamOutCamParamOutCamParamOutcamParamOutcam_param_out die Routine change_radial_distortion_cam_parchange_radial_distortion_cam_parChangeRadialDistortionCamParChangeRadialDistortionCamParChangeRadialDistortionCamParchange_radial_distortion_cam_par verwendet, entspricht das Ausgabebild ImageRectifiedImageRectifiedImageRectifiedImageRectifiedimageRectifiedimage_rectified 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_imageChangeRadialDistortionImageChangeRadialDistortionImageChangeRadialDistortionImagechange_radial_distortion_image nicht mit Zeilenkameras mit perspektivischen Objektiven funktioniert. Alternativ kann image_to_world_planeimage_to_world_planeImageToWorldPlaneImageToWorldPlaneImageToWorldPlaneimage_to_world_plane verwendet werden.

Achtung

change_radial_distortion_imagechange_radial_distortion_imageChangeRadialDistortionImageChangeRadialDistortionImageChangeRadialDistortionImagechange_radial_distortion_image 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

ImageImageImageImageimageimage (input_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (byte / uint2 / real)

Originalbild.

RegionRegionRegionRegionregionregion (input_object)  region objectHRegionHObjectHRegionHobject

Interessierender Bildbereich in ImageRectifiedImageRectifiedImageRectifiedImageRectifiedimageRectifiedimage_rectified.

ImageRectifiedImageRectifiedImageRectifiedImageRectifiedimageRectifiedimage_rectified (output_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject * (byte / uint2 / real)

Ausgabebild mit veränderter radialer Verzeichnung.

CamParamInCamParamInCamParamInCamParamIncamParamIncam_param_in (input_control)  campar HCamPar, HTupleSequence[Union[int, float, str]]HTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Interne Kameraparameter für ImageImageImageImageimageimage.

CamParamOutCamParamOutCamParamOutCamParamOutcamParamOutcam_param_out (input_control)  campar HCamPar, HTupleSequence[Union[int, float, str]]HTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Interne Kameraparameter für ImageRectifiedImageRectifiedImageRectifiedImageRectifiedimageRectifiedimage_rectified.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert change_radial_distortion_imagechange_radial_distortion_imageChangeRadialDistortionImageChangeRadialDistortionImageChangeRadialDistortionImagechange_radial_distortion_image den Wert 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>)set_system("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

change_radial_distortion_cam_parchange_radial_distortion_cam_parChangeRadialDistortionCamParChangeRadialDistortionCamParChangeRadialDistortionCamParchange_radial_distortion_cam_par, read_imageread_imageReadImageReadImageReadImageread_image, grab_imagegrab_imageGrabImageGrabImageGrabImagegrab_image

Nachfolger

edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image, thresholdthresholdThresholdThresholdThresholdthreshold

Siehe auch

change_radial_distortion_cam_parchange_radial_distortion_cam_parChangeRadialDistortionCamParChangeRadialDistortionCamParChangeRadialDistortionCamParchange_radial_distortion_cam_par, camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibrationcamera_calibration, read_cam_parread_cam_parReadCamParReadCamParReadCamParread_cam_par, change_radial_distortion_contours_xldchange_radial_distortion_contours_xldChangeRadialDistortionContoursXldChangeRadialDistortionContoursXldChangeRadialDistortionContoursXldchange_radial_distortion_contours_xld, change_radial_distortion_pointschange_radial_distortion_pointsChangeRadialDistortionPointsChangeRadialDistortionPointsChangeRadialDistortionPointschange_radial_distortion_points

Modul

Calibration