Class SelfCalibrationLinearDualQuadratic

java.lang.Object
boofcv.alg.geo.selfcalib.SelfCalibrationBase
boofcv.alg.geo.selfcalib.SelfCalibrationLinearDualQuadratic

public class SelfCalibrationLinearDualQuadratic extends SelfCalibrationBase

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.

  1. R. Hartley, and A. Zisserman, "Multiple View Geometry in Computer Vision", 2nd Ed, Cambridge 2003
  2. P. Abeles, "BoofCV Technical Report: Automatic Camera Calibration" 2018-1
  • Field Details

  • 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

      public GeometricResult 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

      public DMatrix3 getPlaneAtInfinity()
    • getQ

      public DMatrix4x4 getQ()
      Returns the absolute quadratic
      Returns:
      4x4 quadratic