Class SelfCalibrationLinearRotationSingle

java.lang.Object
boofcv.alg.geo.selfcalib.SelfCalibrationLinearRotationSingle

public class SelfCalibrationLinearRotationSingle extends Object
Camera calibration for when the camera's motion is purely rotational and has no translational component and camera parameters are assumed to be constant. All five camera parameters are estimated and no constraints can be specified. Based off of constant calibration Algorithm 19.3 on page 482 in [1].
 Steps:
 1) Compute homographies between view i and reference frame, i.e. xi = Hix, ensure det(H)=1
 2) Write equation w=(Hi)-Tw(i)-1 as A*x=0, where A = 6m by 6 matrix.
 3) Compute K using Cholesky decomposition w = U*UT. Actually implemented as an algebraic formula.
 
  1. R. Hartley, and A. Zisserman, "Multiple View Geometry in Computer Vision", 2nd Ed, Cambridge 2003
  • Constructor Details

    • SelfCalibrationLinearRotationSingle

      public SelfCalibrationLinearRotationSingle()
  • Method Details

    • estimate

      public boolean estimate(List<Homography2D_F64> viewsI_to_view0, CameraPinhole calibration)
      Assumes that the camera parameter are constant
      Parameters:
      viewsI_to_view0 - (Input) List of observed homographies. Modified so that determinant is one.
      calibration - (Output) found calibration
      Returns:
      true if successful
    • ensureDeterminantOfOne

      public static void ensureDeterminantOfOne(List<Homography2D_F64> homography0toI)
      Scales all homographies so that their determinants are equal to one
    • add

      protected void add(int which, Homography2D_F64 H, DMatrixRMaj A)
      Adds the linear system defined by H into A and B
      Parameters:
      which - index of H in the list