How are the Internal and External Camera Parameters defined? -PIX4Dmapper


This article describes in detail the mathematical models behind the camera's internal and external parameters.

1. Camera external parameters

The external camera parameters are different for each image. They are given by:

  • T = (Tx, Ty, Tz) the position of the camera projection center in world coordinate system.
  • R the rotation matrix that defines the camera orientation with angles ω, φ, κ (PATB convention).

If X = (X, Y, Z) is a 3D point in world coordinate system, its position X' = (X', Y', Z') in camera coordinate system is given by:

Figure 1. 3D geometry of camera externals. Looking from T towards the 3D point X shows the image as seen on the screen. The world coordinate system is defined as Z pointing up, Y pointing North and X pointing East. 
2. From 3D to 2D: Camera internal parameters
2.1 Perspective lens
2.1.1 Camera without distortion model

The pixel coordinate (xu, yu) of the 3D point projection without distortion model is given by:

Where f is the focal length in pixel, and (cx, cy) the principal point in pixel coordinates.

Figure 2. Geometry of a perspective camera without distortion. Looking from T' towards the 3D point X' shows the image as seen on the screen, the origin of the image coordinate system is at the lower-left corner of the image. The image coordinates systems (X', Y', Z') in Figures 1 and 2 correspond.
2.1.2 Camera with distortion model


be the homogeneous point,

the squared 2D radius from the optical center, R1, R2, R3 the radial and T1, T2 the tangential
distortion coefficients. The distorted homogeneous point in camera coordinate system (xhd, yhd)
is given by:

The pixel coordinate (xd, yd) of the 3D point projection with distortion model is given by:

Where f is the focal length in pixel, and (cx, cy) the principal point in pixel coordinates.

2.2 Fisheye lens

The distortion for a fisheye lens is defined by:

  • The parameters C, D, E, F that describe an affine deformation of the circular image in
    pixel coordinates.
    The diagonal elements of the affine matrix can be related to the focal length f:

    The off-diagonal elements are connected to the distortion of the projected image circle,
    which, in the most general case, can be a rotated ellipse.

  • The coefficients p2, p3, p4 of a polynomial:


The pixel coordinate (xd, yd) of the 3D point projection with a fisheye distortion model is
given by


And (cx, cy) is the principal point in pixel coordinates.


When using an 8mm Sigma lens on a Canon 6D camera with an image size of 5472 x 3648 pixel(figure. 3), the internal parameters can be initialized as follows:

  • (cx, cy) = ( 5472/2, 3648/2 ) pixel is the center of the projected image circle
  • p2 = p3 = p4 = 0
  • p1 = 1
  • C = F = 1780 pixel is the radius of the image circle
  • E = D = 0
Figure 3. The distortion of an 8mm Sigma lens on a Canon 6D.
3. Camera Rig External Parameters

A camera rig consists of multiple cameras that are connected together with geometric constraints. A camera rig has the following characteristics:

  • One camera is taken as reference (master) camera with a given position Tm, and orientation Rm in world coordinates. 
  • All the other cameras are secondary cameras with position Ts and orientation Rs in world coordinates.
  • For each secondary camera, the relative translation Trel and rotation Rrel with respect to the reference camera is known.

The position and orientation for secondary rig cameras are defined w.r.t. the reference (master) camera such that:

The position X' of a 3D point in the reference (master) camera coordinate system is given by:

The position X' of a 3D point in the coordinate system of a secondary camera is given by:

Once the 3D point in camera coordinates is calculated, the projection works in the same way as for any other camera as described in section 2.

Was this article helpful?
37 out of 49 found this helpful

Article feedback (for troubleshooting, post here instead)


  • Chen Xing



    I have a question of R rotation matrix when I using Pix4D Mapper Education.

    I was using omega phi and kappa to do other calculations but all results was wrong, and now I come back to double check the equation of R. 

    I run the whole model by using "3D MODEL", then I got "calibrated_camera_parameters.txt" (CCP)and "calibrated_external_camera_parameters.txt" (CECP) files in 1_initial folder. In CCP, I see the camera rotation R of each image, and in CECP, there is calibrated omega phi and kappa of each image.

    I was trying to use MATLAB to calculate rotation matrix R by using the omega phi kappa(from CECP) through the equation mentioned in this website "1. Camera external parameters", but the result I got through the equation here was not the same with the one given by CCP.txt file. 

    What caused this problem? The value should be the same...


    Thank you very much!

    Steven (Chen Xing)


  • Avatar
    Blaž (Pix4D)


    As mentioned in the What does the Output Params Folder contain? article, the project_name_calibrated_camera_parameters positions and rotations of the cameras are defined in a local coordinate system. In order to get the values in the definition mentioned in How are the Internal and External Camera Parameters defined? article, the rotation around the X-axis and the offset needs to be applied.


  • Chen Xing



    I reviewed those websites and the document mentioned "offset", I found the document "", but there was only one coordinate in that file, like xxx845.000 xxxx588.000 xx1.000. 


    Could you please explain how to applied the rotation around the X-axis and the offset?




  • Daniel (Pix4D)


    From the article what does the output paramteres folder contain :


    As it is mentioned, that folder contains "computer vision information" where the convention is to have the z-axis pointing towards the scene, while in photogrammetry we have the convention to have the z-axis pointing towards the camera. That is why it is necesary to rotate the X axis.

    I hope this answer helps.


  • Mughilan Thiru Ramasamy

    Hi Daniel!

    Can you elaborate on how I go about doing the above? Precisely on the following grounds:

    1. Do I add or subtract the offset from the coordinates in the local coordinate system?

    2. Also, the rotation angle by which to rotate the X-axis comes as 'omega' from project_name_calibrated_external_camera_parameters, right?

    Could you provide the equations for the same in terms of the standard parameter notations like Rm, Tm, etc.?


    I am currently working with the EVO II Pro drone of the Autel, but I think that the camera parameters are not the real ones, because the size of the flown pixel does not match the one obtained in the generation of the orthophoto, the difference is up to 4 cm.
    According to the camera specifications the focal length is 28.6mm, but the PIX4D mapper automatically recognizes a focal length of 10.57mm when loading images with the x705_10.6_5472x3648 camera.
    Why is this difference? and please could you help me. What are all the parameters of the camera to be able to process in PIX4D Mapper?


  • Avatar
    Momtanu (Pix4D)

    Hi Mauricio, Pix4D reads the focal length and other parameters from the EXIF of the images (metadata). 28.6 might be the 35 mm equivalent focal length. Some lens manufacturers give the focal length (F35) in the 35 mm equivalent. It is not the 35 mm equivalent but the real focal length that should be used in Pix4Dmapper. The camera's actual focal length is significantly smaller than 20 mm because the camera's sensor is smaller than a standard 35 mm sensor. More here:

    You can calculate the GSD here:

Article is closed for comments.