Camera Class Function Manual

COR_RDD

| HOME | BACK |

Purpose

To determine a correction of lens radial distortion at a given x y photo coordinate.  This function compute a correction from the current lens distortion correction table of the camera, using linear interpolation. 

The sign of the correction vector will be opposite to that in the distortion table.

Class

Camera

Usage

{Pt2D} ret  =  object.COR_RDD({double} argm1, {double} argm2)

argm1 = x photo coordinate at which correction to be determined

argm2 = y photo coordinate at which correction to be determined

Example:

->a = camera()

->cor = a.cor_rdd(10, -112)

->

See also (class function)

vecrdd, pp

| HOME | BACK |


FOCAL

| HOME | BACK |

Purpose

To report the focal length of the cemera.

Class

Camera

Usage

{double} ret  =  object.FOCAL()

Example:

->c = cam.focal()

->

See also (class function)

vecrdd, pp

| HOME | BACK |


GPSOFFSET

| HOME | BACK |

Purpose

To report the offset of GPS receiver from the perspective center of the camera.

Class

Camera

Usage

{Pt3D} ret  =  object.GPSOFFSET()

Example:

->xyz = cam.gpsoffset()

->

See also (class function)

vecrdd, pp

| HOME | BACK |


ID

| HOME | BACK |

Purpose

To report the ID of the camera.

Class

Camera

Usage

{int} ret  =  object.ID()

Example:

->id = cam.id()

->

See also (class function)

vecrdd, pp

| HOME | BACK |


INIT

| HOME | BACK |

Purpose

To initialize a camera object.

Class

Camera

Usage

{void} object.INIT({double} argm1, {VecIdPt2D} argm2)

argm1 = focal length of the camera

argm2 = a vector containing list of fiducial marks' ID and x y coordinates

Example:

->a = camera()
->v = vecidpt2d(4)
->v.pushback(IdPt2d(101, -100, -100, 0.005))
->v.pushback(IdPt2d(102,  100, -100, 0.005))
->v.pushback(IdPt2d(103, -100,  100, 0.005))
->v.pushback(IdPt2d(104,  100,  100, 0.005))
->a.init(70.255, v)
->print a
Camera information....
camera id    : 0
camera name  : not known
focal length : 70.2550 mm

principal point coordinate : ( 0.000 , 0.000)
GPS offset coordinate      : ( 0.000 , 0.000 , 0.000)
fiducial mark coordinates(mm)...

pt no    x             y         sd

101    -100.000    -100.000    0.005
102     100.000    -100.000    0.005
103    -100.000     100.000    0.005
104     100.000     100.000    0.005

radial distortion...

no of distortion data records : 0


 

See also (class function)

vecrdd, pp

| HOME | BACK |


LOAD

| HOME | BACK |

Purpose

To load a Camera object saved as Noobeed format.  It is actually a sort of documentation file, and it is an ASCII file. 

If file name extensions are omitted, the function will add default extensions to the files.  The default extension of the camera file is ".txt".

Unless the path name is given in the file names, the function will search for the files in the current working directory, defined by command "set path".

The detail structure of the documentation file is described in function "save".

Class

Camera

Usage

{void} object.LOAD({String} argm1)

argm1 = file name for the documentation file (default extension is ".txt")

Example:

->a = camera()

->a.load("cam_WILD_27568")

->

See also (class function)

save

| HOME | BACK |


NAME

| HOME | BACK |

Purpose

To report the name of the camera.

Class

Camera

Usage

{String} ret  =  object.NAME()

Example:

->camera_name = cam.name()

->

See also (class function)

vecrdd, pp

| HOME | BACK |


PP

| HOME | BACK |

Purpose

To report the coordinate of the principal point, more correctly the calibrated principal point or principal point of symmetry PPS . 

It should be mention that the coordinate of PPS might not be the same as that given in the camera documentation file, when a camera object is initialized.  It will get change if the flying direction is not the same as the direction of the x axis of the fiducial mark coordinate system.  More details are in Understanding Coordinate System.

Class

Camera

Usage

{Pt2D} ret  =  object.PP()

Example:

->xy_pp = cam.pp()

->

See also (class function)

vecrdd

| HOME | BACK |


SAVE

| HOME | BACK |

Purpose

To save a camera object as Noobeed format.  The function creates one documentation files.

The documentation file will have an extension ".txt".  It is actually an ASCII file and must have exactly 7or 8 lines (not including comment lines) , as below.  When the lens distortion data are not given, the camera documentation file will have only 7 lines, otherwise 8 lines.

 Camera

/ Documant file of a Camera object

/ camera id

0

/ camera name

not known

/ calibrated focal length (mm)

150

/ calibrated principal point coordinate (X Y)

0 0

/ list of fiducial marks

(99991 -115 115 0)

+ (99992 115 115 0)

+ (99993 -115 -115 0)

+ (99994 115 -115 0)



/ GPS offset (X Y Z)

0 0 0

/ Lens distortion information

if a file name extension is not given, the function assumes an extension of ".txt".

if a path name is not include in the specified file name, the function will save the data in the current data path, set by command "set path".

Class

Camera

Usage

{void} object.SAVE({String} argm1)

argm1 = documentation file name

Example:

->cam.save("cam_WILD_27589")

->

See also (class function)

load

| HOME | BACK |


VECFIDUCIAL

| HOME | BACK |

Purpose

To report the coordinate of fiducial marks's IDs and coordinates, as a vector of IdPt2D object.

Class

Camera

Usage

{VecIdPt2D} ret  =  object.VECFIDUCIAL()

Example:

->v = a.vecfiducial()
->print v

List of 2D ID-Point...

list id : 0

Vector size : 4

99991 ( -115.000  ,  115.000)  0.000
99992 (  115.000  ,  115.000)  0.000
99993 ( -115.000  , -115.000)  0.000
99994 (  115.000  , -115.000)  0.000

See also (class function)

vecrdd

| HOME | BACK |


VECRDD

| HOME | BACK |

Purpose

To report lens radial distortions of the camera. 

The radial distortion table is stored as a vector of 2D point objects, VecPt2D, in which x coordinate actually represents radial distance from the center of the photo and y coordinate represents the radial distortion at the particular radial distance.

Class

Camera

Usage

{VecIdPt2D} ret  =  object.VECFIDUCIAL()

Example:

->v = a.vecrdd()

->

See also (class function)

cor_rdd

| HOME | BACK |