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]";
|
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) | |
* get interior camera parameters:
read_cam_par('campar.dat', CamParam)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.
read_cam_par is reentrant and processed without parallelization.
find_marks_and_pose, sim_caltab, gen_caltab, disp_caltab, camera_calibration
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
Foundation