create_camera_setup_modelT_create_camera_setup_modelCreateCameraSetupModelCreateCameraSetupModel (Operator)

Name

create_camera_setup_modelT_create_camera_setup_modelCreateCameraSetupModelCreateCameraSetupModel — Anlegen eines HALCON-Kameraaufbaumodells.

Signatur

create_camera_setup_model( : : NumCameras : CameraSetupModelID)

Herror T_create_camera_setup_model(const Htuple NumCameras, Htuple* CameraSetupModelID)

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

void HCameraSetupModel::HCameraSetupModel(Hlong NumCameras)

void HCameraSetupModel::CreateCameraSetupModel(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_modelCreateCameraSetupModelCreateCameraSetupModelCreateCameraSetupModel erstellt ein neues Kameraaufbaumodell und gibt seinen Handle in CameraSetupModelIDCameraSetupModelIDCameraSetupModelIDCameraSetupModelIDcameraSetupModelID zurück. Die Anzahl von Kameras im Aufbau wird durch den Parameter NumCamerasNumCamerasNumCamerasNumCamerasnumCameras 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_paramSetCameraSetupParamSetCameraSetupParamSetCameraSetupParam 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_paramSetCameraSetupCamParamSetCameraSetupCamParamSetCameraSetupCamParam, weitere Kameraparameter mit dem Operator set_camera_setup_paramset_camera_setup_paramSetCameraSetupParamSetCameraSetupParamSetCameraSetupParam. Alle Kameraparameter können mit dem Operator get_camera_setup_paramget_camera_setup_paramGetCameraSetupParamGetCameraSetupParamGetCameraSetupParam abgefragt werden.

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

Ausführungsinformationen

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

NumCamerasNumCamerasNumCamerasNumCamerasnumCameras (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Anzahl der Kameras im Kalibrieraufbau.

Defaultwert: 2

Wertevorschläge: 1, 2, 3, 4

Restriktion: NumCameras >= 1

CameraSetupModelIDCameraSetupModelIDCameraSetupModelIDCameraSetupModelIDcameraSetupModelID (output_control)  camera_setup_model HCameraSetupModel, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Kameraaufbaumodells.

Beispiel (HDevelop)

* Create camera setup of three cameras.
create_camera_setup_model (3, CameraSetupModelID)
gen_cam_par_area_scan_division (0.006, 0, 8.3e-6, 8.3e-6,\
              512, 384, 1024, 768, StartCamPar)
* Camera 0 is located in the origin.
set_camera_setup_cam_param (CameraSetupModelID, 0, [], StartCamPar,\
                            [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, [], StartCamPar,\
                            [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, [], StartCamPar,\
                            [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_paramSetCameraSetupParamSetCameraSetupParamSetCameraSetupParam

Modul

Calibration