Camera calibration toolbox for Matlab (old versions)

You can find the current release of the toolbox from here.

Camera calibration in context of three-dimensional machine vision is the process of determining the internal camera geometric and optical characteristics (intrinsic parameters) and/or the 3-D position and orientation of the camera frame relative to a certain world coordinate system (extrinsic parameters) (Roger Y. Tsai). Camera projection is often modeled with a simple pinhole camera model. In reality, the camera is a much more complicated device, and if it is used as a measurement instrument, a proper calibration procedure should be performed.

Various methods for calibrating cameras can be found from the literature. Most of these methods may be subdivided into linear, nonlinear and multi-step techniques. The linear techniques are fast, because no iterations are required. However, their accuracy is quite poor, since some simplifications to the camera model has been introduced. The most common techniques in this category are Tsai's method and the direct linear transformation (DLT). On the other hand, nonlinear methods, often used in photogrammetry, are not restricted by selection of the camera model, and therefore they can be more accurate. The disadvantage in the nonlinear approach is the increased computational cost. Minimizing a nonlinear cost function requires an iterative optimization technique and a good initial guess. Therefore, in multi-step methods the camera parameters are first computed with linear technique and then the result is improved by using the existing parameter estimates as an initial guess for the optimization step.

Matlab is a very powerful and commonly used tool for numerical computation and data visualization. Therefore it is also a quite suitable platform for performing camera calibration experiments. The camera calibration toolbox developed in the Unversity of Oulu consists of several Matlab functions also called as m-files. These ascii files can be easily modified to correspond to the user requirements.

The toolbox supports:

  • radial and tangential distortion (two parameters for each)
  • multiple frames captured from different viewpoints
  • coplanar and non-coplanar targets
  • correction for the asymmetric projection of the circular control points
  • correction of the image coordinates

    There are totally eight intrisic parameters to be estimated: scale factor, effective focal length, principal point coordinates, two radial and two tangential distortion coefficients. These parameters are solved either in two or three stages depending on the control point geometry. Image correction is then performed by using a special inverse distortion model.

    For using the toolbox you need to have a calibration object with a set of visible control points whose mutual locations are known accurately. As input data the calibration procedure requires the 3-D coordinates of the control points and the corresponding coordinates of the image observations. In order to achieve better calibration accuracy there can be observations from several camera locations. Moreover, all the control points are not required to be visible in each image. This makes it possible to capture the images from different locations without constraining the distance between the object and the camera.

    Matlab toolbox can be downloaded here:

    Version 2.1 Aug 1998:
    calibr_v21b.tar (102 k) or (34 k)

    Version 2.0 May 1997:
    calibr_v20.tar (99 k) or (32 k)

    Version 1.0 Sept 1996:
    calibr_v10b.tar (77 k) or (29 k)

    You can also see the README file for more information.

    Janne Heikkilä (
    Olli Silven (