read_cam_par ( : : CamParFile : CamParam )

Read the interior camera parameters from text file.

read_cam_par is used to read the interior camera parameters CamParam from a text file with name CamParFile. CamParam is a tuple that contains the interior camera parameters in the following sequence (see write_cam_par for a description of the corresponding camera models):

For area scan cameras:
  [Focus, Kappa, 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_par expects in the file CamParFile one of the two following parameter groups.

The parameter group Camera:Parameter consists of the 8 parameters Focus, Kappa , Sx, Sy, Cx, Cy, ImageWidth and ImageHeight. A suitable file 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 chip [meter]";

  Sy:sy:  1.1e-05;
      DOUBLE:0.0:;
      "Height of a cell on the chip [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 used calibration images [pixel]";

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

In addition to the 8 parameters of the parameter group Camera:Parameter, 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 chip [meter]";

  Sy:sy:  1e-05;
      DOUBLE:0.0:;
      "Height of a cell on the chip [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 used calibration images [pixel]";

  ImageHeight:imgh:   3840;
      INT:1:32767;
      "Height of the used calibration 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]";


Parameters

CamParFile (input_control)
string -> string
File name of interior camera parameters.
Default value: 'campar.dat'
List of values: 'campar.dat', 'campar.initial', 'campar.final'

CamParam (output_control)
number-array -> real / integer
Interior camera parameters.
Number of elements: (CamParam == 8) || (CamParam == 11)


Example
*  get interior camera parameters:
read_cam_par('campar.dat', CamParam)

Result

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


Parallelization Information

read_cam_par is reentrant and processed without parallelization.


Possible Successors

find_marks_and_pose, sim_caltab, gen_caltab, disp_caltab, camera_calibration


See also

find_caltab, find_marks_and_pose, camera_calibration, disp_caltab, sim_caltab, write_cam_par, write_pose, read_pose, project_3d_point, get_line_of_sight


Module

Foundation



Copyright © 1996-2008 MVTec Software GmbH