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 in the following sequence (see calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras or camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration for a description of the corresponding 3D camera models):

For area scan cameras with the distortions modeled by the division model: [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

For area scan cameras with the distortions modeled by the polynomial model: [Focus, Poly1, Poly2, Poly3, Poly4, Poly5, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

For line scan cameras: [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight, Vx, Vy, Vz]

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 internal camera parameters of the area scan camera for which the distortions are modeled by the division model (Focus, Kappa , Sx, Sy, Cx, Cy, ImageWidth and ImageHeight) or of the 12 internal camera parameters of the area scan camera for which the distortions are modeled by the polynomial model (Focus, Poly1, Poly2, Poly3, Poly4, Poly5, Sx, Sy, Cx, Cy, ImageWidth and ImageHeight).

A suitable file for the 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 the 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.025;
      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";

In addition to the 8 parameters of the parameter group Camera:Parameter with the divisional distortion model, the parameter group LinescanCamera:Parameter contains 3 parameters that describe 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 == 11 || CameraParam == 12

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