| Operatoren |
write_cam_par — Speichern der internen Kameraparameter in eine Textdatei.
write_cam_par( : : CameraParam, CamParFile : )
write_cam_par dient zum Abspeichern der internen Kameraparameter CameraParam in eine Textdatei mit dem Namen CamParFile. Die Dateiendung für die Kameraparameter ist in HALCON 'dat'.
Die Anzahl der Werte in CameraParam richtet sich nach dem Kameratyp. Siehe die Beschreibung von set_calib_data_cam_param für eine Liste der Werte und calibrate_cameras für detaillierte Informationen über Kameratypen und Kameraparameter.
Die internen Kameraparameter beschreiben den Abbildungsvorgang der verwendeten Kombination von Kamera, Objektiv und Framegrabber und werden durch die Kamerakalibrierung bestimmt, welche mit calibrate_cameras oder camera_calibration ausgeführt wird.
Das Format der Textdatei CamParFile ist eine (von HALCON unabhängige) generische Parameterbeschreibung, die beliebige Gruppen von Parametern zu hierarchisch organisierten Parametergruppen (Struktur ParGroup) zusammenfasst. Die Beschreibung eines Parameters innerhalb einer ParGroup enthält in 3 Zeilen folgende Einträge:
Name : Kurzname : aktueller Wert ;
Typ : Untere Grenze (optional) : Obere Grenze (optional) ;
Beschreibung (optional) ;
In Abhängigkeit von der Anzahl der Elemente in CameraParam wird mit dem Operator write_cam_par die Parametergruppe Camera:Parameter bzw. LinescanCamera:Parameter in die Datei CamParFile geschrieben (siehe read_cam_par für ein Beispiel). Die Parametergruppe Camera:Parameter enthält die 8 bis 14 internen Kameraparameter für Kameras mit Flächensensoren. Die Parametergruppe LinescanCamera:Parameter enthält die 11 internen Kameraparameter für Kameras mit Zeilensensoren.
Interne Kameraparameter.
Parameteranzahl: CameraParam == 8 || CameraParam == 10 || CameraParam == 11 || CameraParam == 12 || CameraParam == 14
Dateiname der Kameraparameterdatei.
Defaultwert: 'campar.dat'
Werteliste: 'campar.dat', 'campar.final', 'campar.initial'
Dateiendung: .dat
*
* Calibrate the camera.
*
StartCamPar := [0.016,0,0.0000074,0.0000074,326,247,652,494]
create_calib_data ('calibration_object', 1, 1, CalibDataID)
set_calib_data_cam_param (CalibDataID, 0, 'area_scan_division', StartCamPar)
set_calib_data_calib_object (CalibDataID, 0, 'caltab_30mm.descr')
NumImages := 10
for I := 1 to NumImages by 1
read_image (Image, ImgPath + 'calib_' + I$'02d')
find_calib_object (Image, CalibDataID, 0, 0, I, [], [])
get_calib_data_observ_contours (Caltab, CalibDataID, 'caltab', 0, 0, I)
endfor
calibrate_cameras (CalibDataID, Error)
get_calib_data (CalibDataID, 'camera', 0, 'params', CamParam)
* Write the internal camera parameters to a file
write_cam_par (CamParam, 'camera_parameters.dat')
Sind die Parameterwerte korrekt und konnte die Datei erfolgreich geschrieben werden, dann liefert write_cam_par den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
find_caltab, find_marks_and_pose, camera_calibration, disp_caltab, sim_caltab, read_cam_par, write_pose, read_pose, project_3d_point, get_line_of_sight
Foundation
| Operatoren |