ClassesClassesClassesClasses | | | | Operators

read_cam_parT_read_cam_parReadCamParread_cam_parReadCamParReadCamPar (Operator)

Name

read_cam_parT_read_cam_parReadCamParread_cam_parReadCamParReadCamPar — Read the internal camera parameters from a text file.

Signature

read_cam_par( : : CamParFile : CameraParam)

Herror T_read_cam_par(const Htuple CamParFile, Htuple* CameraParam)

Herror read_cam_par(const HTuple& CamParFile, HTuple* CameraParam)

void ReadCamPar(const HTuple& CamParFile, HTuple* CameraParam)

static HTuple HMisc::ReadCamPar(const HString& CamParFile)

static HTuple HMisc::ReadCamPar(const char* CamParFile)

void HOperatorSetX.ReadCamPar(
[in] VARIANT CamParFile, [out] VARIANT* CameraParam)

VARIANT HMiscX.ReadCamPar([in] BSTR CamParFile)

static void HOperatorSet.ReadCamPar(HTuple camParFile, out HTuple cameraParam)

static HTuple HMisc.ReadCamPar(string camParFile)

Description

read_cam_parread_cam_parReadCamParread_cam_parReadCamParReadCamPar is used to read the internal camera parameters CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam from a text file with name CamParFileCamParFileCamParFileCamParFileCamParFilecamParFile. The default HALCON file extension for the camera parameters is 'dat'. CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam is a tuple that contains the internal camera parameters.

The number of values in CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam depends on the specified CameraType. See the description of set_calib_data_cam_paramset_calib_data_cam_paramSetCalibDataCamParamset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParam for a list of values and calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras for details on camera types and camera parameters.

The format of the text file is a (HALCON-independent) generic parameter description. It allows to group arbitrary sets of parameters hierarchically. The description of a single parameter within a parameter group consists of the following 3 lines:

   Name : Shortname : Actual value ;
    Type : Lower bound (optional) : Upper bound (optional) ;
    Description (optional) ;
Comments are marked by a '#' at the beginning of a line.

read_cam_parread_cam_parReadCamParread_cam_parReadCamParReadCamPar expects in the file CamParFileCamParFileCamParFileCamParFileCamParFilecamParFile one of the two following parameter groups.

The parameter group Camera:Parameter consists of the 8 to 14 internal camera parameters of the respective camera model.

A suitable file for a projective area scan camera for which the distortions are modeled by the division model can look like the following:

  # INTERNAL CAMERA PARAMETERS

  ParGroup: Camera: Parameter;
      "Internal camera parameters";

  Focus:foc:      0.00806039;
      DOUBLE:0.0:;
      "Focal length of the lens [meter]";

  Kappa:kappa:    -2253.5;
      DOUBLE::;
      "Radial distortion coefficient [1/(meter*meter)]";

  Sx:sx:  1.0629e-05;
      DOUBLE:0.0:;
      "Width of a cell on the sensor [meter]";

  Sy:sy:  1.1e-05;
      DOUBLE:0.0:;
      "Height of a cell on the sensor [meter]";

  Cx:cx:  378.236;
      DOUBLE:0.0:;
      "X-coordinate of the image center [pixel]";

  Cy:cy:  297.587;
      DOUBLE:0.0:;
      "Y-coordinate of the image center [pixel]";

  ImageWidth:imgw:    768;
      INT:1:32767;
      "Width of the images [pixel]";

  ImageHeight:imgh:   576;
      INT:1:32767;
      "Height of the images [pixel]";

A suitable file for a telecentric area scan camera for which the distortions are modeled by the polynomial model can look like the following:

  # INTERNAL CAMERA PARAMETERS

  ParGroup: Camera: Parameter;
      "Internal camera parameters";

  Focus:foc:      0.0;
      DOUBLE:0.0:;
      "Focal length of the lens [meter]";

  Poly1:poly1:   0;
      DOUBLE::;
      "1st polynomial distortion coefficient";

  Poly2:poly2:   0;
      DOUBLE::;
      "2nd polynomial distortion coefficient";

  Poly3:poly3:   0;
      DOUBLE::;
      "3rd polynomial distortion coefficient";

  Poly4:poly4:   0;
      DOUBLE::;
      "4th polynomial distortion coefficient";

  Poly5:poly5:   0;
      DOUBLE::;
      "5th polynomial distortion coefficient";

  Sx:sx:   1.1e-005;
      DOUBLE:0.0:;
      "Width of a cell on the sensor";

  Sy:sy:   1.1e-005;
      DOUBLE:0.0:;
      "Height of a cell on the sensor";

  Cx:cx:   384;
      DOUBLE::;
      "X-coordinate of the image center";

  Cy:cy:   288;
      DOUBLE::;
      "Y-coordinate of the image center";

  ImageWidth:imgw:  768;
      INT:1:32768;
      "Width of the images";

  ImageHeight:imgh:  576;
      INT:1:32768;
      "Height of the images";

A suitable file for a projective area scan camera with a tilt lens for which the distortions are modeled by the division model can look like the following:

  # INTERNAL CAMERA PARAMETERS

  ParGroup: Camera: Parameter;
      "Internal camera parameters";

  Focus:foc:      0.00806039;
      DOUBLE:0.0:;
      "Focal length of the lens [meter]";

  Kappa:kappa:    -2253.5;
      DOUBLE::;
      "Radial distortion coefficient [1/(meter*meter)]";

  Tilt:tilt:      5.547;
      DOUBLE:0.0:;
      "Tilt of the lens [degrees]";

  Rotation:rot:   1.2763;
      DOUBLE:0.0:;
      "Direction of the tilt of the lens [degrees]";

  Sx:sx:  1.0629e-05;
      DOUBLE:0.0:;
      "Width of a cell on the sensor [meter]";

  Sy:sy:  1.1e-05;
      DOUBLE:0.0:;
      "Height of a cell on the sensor [meter]";

  Cx:cx:  378.236;
      DOUBLE:0.0:;
      "X-coordinate of the image center [pixel]";

  Cy:cy:  297.587;
      DOUBLE:0.0:;
      "Y-coordinate of the image center [pixel]";

  ImageWidth:imgw:    768;
      INT:1:32767;
      "Width of the images [pixel]";

  ImageHeight:imgh:   576;
      INT:1:32767;
      "Height of the images [pixel]";

The parameter group LinescanCamera:Parameter contains 11 parameters that describe the internal camera parameters and the the motion of the camera with respect to the object. With this, the parameter group LinescanCamera:Parameter consists of the 11 parameters Focus, Kappa , Sx, Sy, Cx, Cy, ImageWidth, ImageHeight, Vx, Vy und Vz. A suitable file can look like the following:

  # INTERNAL CAMERA PARAMETERS

  ParGroup: LinescanCamera: Parameter;
      "Internal camera parameters";

  Focus:foc:      0.061;
      DOUBLE:0.0:;
      "Focal length of the lens [meter]";

  Kappa:kappa:    -16.9761;
      DOUBLE::;
      "Radial distortion coefficient [1/(meter*meter)]";

  Sx:sx:  1.06903e-05;
      DOUBLE:0.0:;
      "Width of a cell on the sensor [meter]";

  Sy:sy:  1e-05;
      DOUBLE:0.0:;
      "Height of a cell on the sensor [meter]";

  Cx:cx:  930.625;
      DOUBLE:0.0:;
      "X-coordinate of the image center [pixel]";

  Cy:cy:  149.962;
      DOUBLE:0.0:;
      "Y-coordinate of the image center [pixel]";

  ImageWidth:imgw:    2048;
      INT:1:32767;
      "Width of the images [pixel]";

  ImageHeight:imgh:   3840;
      INT:1:32767;
      "Height of the images [pixel]";

  Vx:vx:  1.41376e-06;
      DOUBLE::;
      "X-component of the motion vector [meter/scanline]";

  Vy:vy:  5.45756e-05;
      DOUBLE::;
      "Y-component of the motion vector [meter/scanline]";

  Vz:vz:  3.45872e-06;
      DOUBLE::;
      "Z-component of the motion vector [meter/scanline]";

Parallelization

Parameters

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

File name of internal camera parameters.

Default value: 'campar.dat' "campar.dat" "campar.dat" "campar.dat" "campar.dat" "campar.dat"

List of values: '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"

File extension: .dat

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

Internal camera parameters.

Number of elements: CameraParam == 8 || CameraParam == 10 || CameraParam == 11 || CameraParam == 12 || CameraParam == 14

Example (HDevelop)

*  get internal camera parameters:
read_cam_par('campar.dat', CameraParam)

Example (HDevelop)

*  get internal camera parameters:
read_cam_par('campar.dat', CameraParam)

Example (HDevelop)

*  get internal camera parameters:
read_cam_par('campar.dat', CameraParam)

Example (C++ (HALCON 5.0-10.0))

HTuple CameraParam;
// get internal camera parameters:
read_cam_par("campar.dat", &CameraParam);

Example (HDevelop)

*  get internal camera parameters:
read_cam_par('campar.dat', CameraParam)

Example (HDevelop)

*  get internal camera parameters:
read_cam_par('campar.dat', CameraParam)

Result

read_cam_parread_cam_parReadCamParread_cam_parReadCamParReadCamPar returns 2 (H_MSG_TRUE) if all parameter values are correct and the file has been read successfully. If necessary an exception is raised.

Possible Successors

find_marks_and_posefind_marks_and_poseFindMarksAndPosefind_marks_and_poseFindMarksAndPoseFindMarksAndPose, sim_caltabsim_caltabSimCaltabsim_caltabSimCaltabSimCaltab, gen_caltabgen_caltabGenCaltabgen_caltabGenCaltabGenCaltab, disp_caltabdisp_caltabDispCaltabdisp_caltabDispCaltabDispCaltab, camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration

See also

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, write_cam_parwrite_cam_parWriteCamParwrite_cam_parWriteCamParWriteCamPar, 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

Module

Foundation


ClassesClassesClassesClasses | | | | Operators