KlassenKlassenKlassenKlassen | | | | Operatoren

create_camera_setup_modelcreate_camera_setup_modelCreateCameraSetupModelcreate_camera_setup_modelCreateCameraSetupModelCreateCameraSetupModel (Operator)

Name

create_camera_setup_modelcreate_camera_setup_modelCreateCameraSetupModelcreate_camera_setup_modelCreateCameraSetupModelCreateCameraSetupModel — Anlegen eines HALCON-Kameraaufbaumodells.

Signatur

create_camera_setup_model( : : NumCameras : CameraSetupModelID)

Herror create_camera_setup_model(const Hlong NumCameras, Hlong* CameraSetupModelID)

Herror T_create_camera_setup_model(const Htuple NumCameras, Htuple* CameraSetupModelID)

Herror create_camera_setup_model(const HTuple& NumCameras, Hlong* CameraSetupModelID)

void HCameraSetupModel::CreateCameraSetupModel(const HTuple& NumCameras)

void CreateCameraSetupModel(const HTuple& NumCameras, HTuple* CameraSetupModelID)

void HCameraSetupModel::HCameraSetupModel(Hlong NumCameras)

void HCameraSetupModel::CreateCameraSetupModel(Hlong NumCameras)

void HOperatorSetX.CreateCameraSetupModel(
[in] VARIANT NumCameras, [out] VARIANT* CameraSetupModelID)

void HCameraSetupModelX.CreateCameraSetupModel([in] Hlong NumCameras)

static void HOperatorSet.CreateCameraSetupModel(HTuple numCameras, out HTuple cameraSetupModelID)

public HCameraSetupModel(int numCameras)

void HCameraSetupModel.CreateCameraSetupModel(int numCameras)

Beschreibung

Der Operator create_camera_setup_modelcreate_camera_setup_modelCreateCameraSetupModelcreate_camera_setup_modelCreateCameraSetupModelCreateCameraSetupModel erstellt ein neues Kameraaufbaumodell und gibt seinen Handle in CameraSetupModelIDCameraSetupModelIDCameraSetupModelIDCameraSetupModelIDCameraSetupModelIDcameraSetupModelID zurück. Die Anzahl von Kameras im Aufbau wird durch den Parameter NumCamerasNumCamerasNumCamerasNumCamerasNumCamerasnumCameras festgelegt und kann im Nachhinein nicht mehr geändert werden. Das Modell speichert interne Parameter und die Standardabweichungen der Parameter (optional) für jede Kamera, sowie die Pose der Kamera.

Das Koordinatensystem, in dem die Kameraposen angegeben werden, kann mit set_camera_setup_paramset_camera_setup_paramSetCameraSetupParamset_camera_setup_paramSetCameraSetupParamSetCameraSetupParam verändert werden: Entweder man wählt eine Kamera, dann werden die Posen der anderen Kameras relativ zu der gewählten Kamera angegeben. Oder man übergibt eine allgemeine Transformation und verschiebt damit das Koordinatensystem des Aufbaus in eine beliebige Lage. Letzteres ist insbesondere dann nützlich, wenn man die Kameras beispielsweise im Koordinatensystem eines Objekts darstellen will, das von den Kameras beobachtet wird (siehe auch das unten folgende Beispiel).

Die internen Kameraparameter und ihre Pose werden gesetzt, bzw. geändert mit dem Operator set_camera_setup_cam_paramset_camera_setup_cam_paramSetCameraSetupCamParamset_camera_setup_cam_paramSetCameraSetupCamParamSetCameraSetupCamParam, weitere Kameraparameter mit dem Operator set_camera_setup_paramset_camera_setup_paramSetCameraSetupParamset_camera_setup_paramSetCameraSetupParamSetCameraSetupParam. Alle Kameraparameter können mit dem Operator get_camera_setup_paramget_camera_setup_paramGetCameraSetupParamget_camera_setup_paramGetCameraSetupParamGetCameraSetupParam abgefragt werden.

Ein Kameraaufbaumodell kann mit dem Operator write_camera_setup_modelwrite_camera_setup_modelWriteCameraSetupModelwrite_camera_setup_modelWriteCameraSetupModelWriteCameraSetupModel in eine Datei gespeichert werden. Im Nachhinein kann es mit dem Operator read_camera_setup_modelread_camera_setup_modelReadCameraSetupModelread_camera_setup_modelReadCameraSetupModelReadCameraSetupModel wieder gelesen werden.

Zum Schluss, nachdem das Kameraaufbaumodell nicht mehr gebraucht wird, sollte der von ihm angelegten Speicher mit dem Operator clear_camera_setup_modelclear_camera_setup_modelClearCameraSetupModelclear_camera_setup_modelClearCameraSetupModelClearCameraSetupModel freigegeben werden.

Parallelisierung

Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.

Parameter

NumCamerasNumCamerasNumCamerasNumCamerasNumCamerasnumCameras (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Anzahl der Kameras im Kalibrieraufbau.

Defaultwert: 2

Wertevorschläge: 1, 2, 3, 4

Restriktion: NumCameras >= 1

CameraSetupModelIDCameraSetupModelIDCameraSetupModelIDCameraSetupModelIDCameraSetupModelIDcameraSetupModelID (output_control)  camera_setup_model HCameraSetupModel, HTupleHTupleHCameraSetupModel, HTupleHCameraSetupModelX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle des Kameraaufbaumodells.

Beispiel (HDevelop)

* create camera setup of three cameras
create_camera_setup_model (3, CameraSetupModelID)

* camera 0 is located in the origin
set_camera_setup_cam_param (CameraSetupModelID, 0, 'area_scan_division',\
                            [0.006, 0, 8.3e-6, 8.3e-6, 512, 384, 1024, 768],\
                            [0, 0, 0, 0, 0, 0, 0])

* camera 1 is shifted 0.07 m in positive x-direction relative to camera 0
set_camera_setup_cam_param (CameraSetupModelID, 1, 'area_scan_division',\
                            [0.006, 0, 8.3e-6, 8.3e-6, 512, 384, 1024, 768],\
                            [0.07, 0, 0, 0, 0, 0, 0])

* camera 2 is shifted 0.1 m in negative y-direction relative to camera 0
set_camera_setup_cam_param (CameraSetupModelID, 2, 'area_scan_division',\
                            [0.006, 0, 8.3e-6, 8.3e-6, 512, 384, 1024, 768],\
                            [0.0, -0.1, 0, 0, 0, 0, 0])

* there is an object, which is 0.5 away from the origin in
* z-direction, and is facing the origin
ObjectPose := [0, 0, 0.5, 180, 0, 0, 0]
* place the setup's origin in the object
set_camera_setup_param (CameraSetupModelID, 'general', 'coord_transf_pose',\
                        ObjectPose)

* now the camera poses are given relative to the object
get_camera_setup_param (CameraSetupModelID, 0, 'pose', CamPose0)
* CamPose0 is equivalent to [0.0, 0.0, 0.5, 180.0, 0.0, 0.0, 0]

get_camera_setup_param (CameraSetupModelID, 1, 'pose', CamPose1)
* CamPose1 is equivalent to [0.07, 0.0, 0.5, 180.0, 0.0, 0.0, 0]

get_camera_setup_param (CameraSetupModelID, 2, 'pose', CamPose2)
* CamPose2 is equivalent to [0.0, 0.1, 0.5, 180.0, 0.0, 0.0, 0]

Nachfolger

set_camera_setup_paramset_camera_setup_paramSetCameraSetupParamset_camera_setup_paramSetCameraSetupParamSetCameraSetupParam

Modul

Calibration


KlassenKlassenKlassenKlassen | | | | Operatoren