Class SelfCalibrationLinearDualQuadratic
Computes intrinsic calibration matrix for each view using projective camera matrices to compute the the dual absolute quadratic (DAQ) and by assuming different elements in the 3x3 calibration matrix have linear constraints. A minimum of three views are required to solve for the 10 unknowns in the DAQ if all constraints are applied. A solution found in the null space of the linear system below:
w*i = Pi*Q*∞*PTi
Where Q* is DAQ and w* is the Dual Image Absolute Cubic (DIAC)
On output, a list of intrinsic parameters is returned (fx,fy,skew) for every view which is provided. For a complete discussion of the theory see the auto calibration section of [1] with missing equations derived in [2].
Two types of constraints can be specified; zero skew and fixed aspect ratio. Zero principle point is a mandatory constraint. Zero skew is required if fixed aspect ratio is a constraint.
A check for sufficient geometric diversity is done by looking at singular values. The nullity should be one,
but if its more than one then there is too much ambiguity. The tolerance can be adjusted by changing the
singular threshold
.
- R. Hartley, and A. Zisserman, "Multiple View Geometry in Computer Vision", 2nd Ed, Cambridge 2003
- P. Abeles, "BoofCV Technical Report: Automatic Camera Calibration" 2018-1
-
Nested Class Summary
Nested classes/interfaces inherited from class boofcv.alg.geo.selfcalib.SelfCalibrationBase
SelfCalibrationBase.Projective
-
Field Summary
Modifier and TypeFieldDescriptionboolean
boolean
-
Constructor Summary
ConstructorDescriptionSelfCalibrationLinearDualQuadratic
(boolean zeroSkew) Constructor for zero-principle point and (optional) zero-skewSelfCalibrationLinearDualQuadratic
(double aspectRatio) Constructor for zero-principle point, zero-skew, and known fixed aspect ratio (fy/fx) -
Method Summary
Methods inherited from class boofcv.alg.geo.selfcalib.SelfCalibrationBase
addCameraMatrix, addCameraMatrix, computeW, encodeQ, getMinimumProjectives
-
Field Details
-
decomposeADQ
-
knownAspect
public boolean knownAspect -
zeroSkew
public boolean zeroSkew
-
-
Constructor Details
-
SelfCalibrationLinearDualQuadratic
public SelfCalibrationLinearDualQuadratic(boolean zeroSkew) Constructor for zero-principle point and (optional) zero-skew- Parameters:
zeroSkew
- if true zero is assumed to be zero
-
SelfCalibrationLinearDualQuadratic
public SelfCalibrationLinearDualQuadratic(double aspectRatio) Constructor for zero-principle point, zero-skew, and known fixed aspect ratio (fy/fx)- Parameters:
aspectRatio
- Specifies the known aspect ratio. fy/fx
-
-
Method Details
-
reset
public void reset()Resets it into its initial state -
solve
Solve for camera calibration. A sanity check is performed to ensure that a valid calibration is found. All values must be countable numbers and the focal lengths must be positive numbers.- Returns:
- Indicates if it was successful or not. If it fails it says why
-
getIntrinsics
-
getPlaneAtInfinity
-
getQ
Returns the absolute quadratic- Returns:
- 4x4 quadratic
-