KlassenKlassenKlassenKlassen | | | | Operatoren

write_cam_parT_write_cam_parWriteCamParwrite_cam_parWriteCamParWriteCamPar (Operator)

Name

write_cam_parT_write_cam_parWriteCamParwrite_cam_parWriteCamParWriteCamPar — Speichern der internen Kameraparameter in eine Textdatei.

Signatur

write_cam_par( : : CameraParam, CamParFile : )

Herror T_write_cam_par(const Htuple CameraParam, const Htuple CamParFile)

Herror write_cam_par(const HTuple& CameraParam, const HTuple& CamParFile)

void WriteCamPar(const HTuple& CameraParam, const HTuple& CamParFile)

static void HMisc::WriteCamPar(const HTuple& CameraParam, const HString& CamParFile)

static void HMisc::WriteCamPar(const HTuple& CameraParam, const char* CamParFile)

void HOperatorSetX.WriteCamPar(
[in] VARIANT CameraParam, [in] VARIANT CamParFile)

void HMiscX.WriteCamPar(
[in] VARIANT CameraParam, [in] BSTR CamParFile)

static void HOperatorSet.WriteCamPar(HTuple cameraParam, HTuple camParFile)

static void HMisc.WriteCamPar(HTuple cameraParam, string camParFile)

Beschreibung

write_cam_parwrite_cam_parWriteCamParwrite_cam_parWriteCamParWriteCamPar dient zum Abspeichern der internen Kameraparameter CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam in eine Textdatei mit dem Namen CamParFileCamParFileCamParFileCamParFileCamParFilecamParFile. Die Dateiendung für die Kameraparameter ist in HALCON 'dat'.

Die Anzahl der Werte in CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam richtet sich nach dem Kameratyp. Siehe die Beschreibung von set_calib_data_cam_paramset_calib_data_cam_paramSetCalibDataCamParamset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParam für eine Liste der Werte und calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras 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_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras oder camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration ausgeführt wird.

Das Format der Textdatei CamParFileCamParFileCamParFileCamParFileCamParFilecamParFile 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 CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam wird mit dem Operator write_cam_parwrite_cam_parWriteCamParwrite_cam_parWriteCamParWriteCamPar die Parametergruppe Camera:Parameter bzw. LinescanCamera:Parameter in die Datei CamParFileCamParFileCamParFileCamParFileCamParFilecamParFile geschrieben (siehe read_cam_parread_cam_parReadCamParread_cam_parReadCamParReadCamPar 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.

Parallelisierung

Parameter

CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam (input_control)  number-array HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Interne Kameraparameter.

Parameteranzahl: CameraParam == 8 || CameraParam == 10 || CameraParam == 11 || CameraParam == 12 || CameraParam == 14

CamParFileCamParFileCamParFileCamParFileCamParFilecamParFile (input_control)  filename.write HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Dateiname der Kameraparameterdatei.

Defaultwert: 'campar.dat' "campar.dat" "campar.dat" "campar.dat" "campar.dat" "campar.dat"

Werteliste: 'campar.dat'"campar.dat""campar.dat""campar.dat""campar.dat""campar.dat", 'campar.final'"campar.final""campar.final""campar.final""campar.final""campar.final", 'campar.initial'"campar.initial""campar.initial""campar.initial""campar.initial""campar.initial"

Dateiendung: .dat

Beispiel (HDevelop)

* 
* 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')

Ergebnis

Sind die Parameterwerte korrekt und konnte die Datei erfolgreich geschrieben werden, dann liefert write_cam_parwrite_cam_parWriteCamParwrite_cam_parWriteCamParWriteCamPar den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration

Siehe auch

find_caltabfind_caltabFindCaltabfind_caltabFindCaltabFindCaltab, find_marks_and_posefind_marks_and_poseFindMarksAndPosefind_marks_and_poseFindMarksAndPoseFindMarksAndPose, camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration, disp_caltabdisp_caltabDispCaltabdisp_caltabDispCaltabDispCaltab, sim_caltabsim_caltabSimCaltabsim_caltabSimCaltabSimCaltab, read_cam_parread_cam_parReadCamParread_cam_parReadCamParReadCamPar, write_posewrite_poseWritePosewrite_poseWritePoseWritePose, read_poseread_poseReadPoseread_poseReadPoseReadPose, project_3d_pointproject_3d_pointProject3dPointproject_3d_pointProject3dPointProject3dPoint, get_line_of_sightget_line_of_sightGetLineOfSightget_line_of_sightGetLineOfSightGetLineOfSight

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren