| Operatoren |
create_camera_setup_model — Anlegen eines HALCON-Kameraaufbaumodells.
create_camera_setup_model( : : NumCameras : CameraSetupModelID)
Der Operator create_camera_setup_model erstellt ein neues Kameraaufbaumodell und gibt seinen Handle in CameraSetupModelID zurück. Die Anzahl von Kameras im Aufbau wird durch den Parameter NumCameras 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_param 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_param, weitere Kameraparameter mit dem Operator set_camera_setup_param. Alle Kameraparameter können mit dem Operator get_camera_setup_param abgefragt werden.
Ein Kameraaufbaumodell kann mit dem Operator write_camera_setup_model in eine Datei gespeichert werden. Im Nachhinein kann es mit dem Operator read_camera_setup_model wieder gelesen werden.
Zum Schluss, nachdem das Kameraaufbaumodell nicht mehr gebraucht wird, sollte der von ihm angelegten Speicher mit dem Operator clear_camera_setup_model freigegeben werden.
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.
Anzahl der Kameras im Kalibrieraufbau.
Defaultwert: 2
Wertevorschläge: 1, 2, 3, 4
Restriktion: NumCameras >= 1
Handle des Kameraaufbaumodells.
* 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]
Calibration
| Operatoren |