public class Zhang99CalibrationMatrixFromHomographies
extends java.lang.Object
Estimates camera calibration matrix from a set of homographies using linear algebra. Based upon the description found in [1], 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 [1]. 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 [1] was numerically unstable and did not produce meaningful results.
[1] 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.
| Constructor and Description |
|---|
Zhang99CalibrationMatrixFromHomographies(boolean assumeZeroSkew)
Configures calibration estimation.
|
| Modifier and Type | Method and Description |
|---|---|
org.ejml.data.DenseMatrix64F |
getCalibrationMatrix()
Returns the computed calibration matrix.
|
org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DenseMatrix64F> |
getSvd() |
void |
process(java.util.List<org.ejml.data.DenseMatrix64F> homographies)
Given a set of homographies computed from a sequence of images that observe the same
plane it estimates the camera's calibration.
|
public Zhang99CalibrationMatrixFromHomographies(boolean assumeZeroSkew)
assumeZeroSkew - Assume that skew matrix is zero or notpublic void process(java.util.List<org.ejml.data.DenseMatrix64F> homographies)
homographies - Homographies computed from observations of the calibration grid.public org.ejml.data.DenseMatrix64F getCalibrationMatrix()
public org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DenseMatrix64F> getSvd()