public class Zhang99CalibrationMatrixFromHomographies extends Object
Estimates camera calibration matrix from a set of homographies using linear algebra. Based upon the description found in , but has been modified to improve stability and flexibility. Two variants are implemented inside this class. One variant assumes that the skew is zero and requires two or more homographies and the other variant does not assume the skew is zero and requires three or more homographies. The calibration matrix structure is shown below.
Calibration matrix is defined as follows:
[ α c u0 ]
[ 0 β v0 ]
[ 0 0 1 ]
where 'c' is the camera's skew.
The zero skew variant is a modification of what was described in . Instead of simply adding another row to force the skew to be zero that entire part of the equation has been omitted. The algorithm described in  was numerically unstable and did not produce meaningful results.
 Zhengyou Zhang, "Flexible Camera Calibration By Viewing a Plane From Unknown Orientations,", International Conference on Computer Vision (ICCV'99), Corfu, Greece, pages 666-673, September 1999.
Constructors Constructor Description
(boolean assumeZeroSkew)Configures calibration estimation.
Modifier and Type Method Description
()Returns the computed calibration matrix.
List<DMatrixRMaj> homographies)(Given a set of homographies computed from a sequence of images that observe the same plane it estimates the camera's calibration.
(boolean zeroSkew)Specifies if it should assume skew is zero or not
Zhang99CalibrationMatrixFromHomographiespublic Zhang99CalibrationMatrixFromHomographies(boolean assumeZeroSkew)Configures calibration estimation.
assumeZeroSkew- Assume that skew matrix is zero or not
setAssumeZeroSkewpublic void setAssumeZeroSkew(boolean zeroSkew)Specifies if it should assume skew is zero or not
zeroSkew- true if skew is zero
processGiven a set of homographies computed from a sequence of images that observe the same plane it estimates the camera's calibration.
homographies- Homographies computed from observations of the calibration grid.
getCalibrationMatrixpublic DMatrixRMaj getCalibrationMatrix()Returns the computed calibration matrix.
- Calibration matrix.
getSolverNullpublic SolveNullSpaceSvd_DDRM getSolverNull()