Class MSACImageOfAbsoluteConicRobustEstimator

java.lang.Object
com.irurueta.ar.calibration.estimators.ImageOfAbsoluteConicRobustEstimator
com.irurueta.ar.calibration.estimators.MSACImageOfAbsoluteConicRobustEstimator

public class MSACImageOfAbsoluteConicRobustEstimator extends ImageOfAbsoluteConicRobustEstimator
Finds the best image of absolute conic (IAC) for provided collection of homographies (2D transformations) using MSAC algorithm.
  • Field Details

    • DEFAULT_THRESHOLD

      public static final double DEFAULT_THRESHOLD
      Constant defining default threshold to determine whether homographies are inliers or not. Threshold is defined by equations h1'*IAC*h2 = 0 and h1'*IAC*h1 = h2'*IAC*h2 --< h1'*IAC*h1 - h2'*IAC*h2 = 0, where h1 and h2 are the 1st and 2nd columns of an homography (2D transformation). These equations are derived from the fact that rotation matrices are orthonormal.
      See Also:
    • MIN_THRESHOLD

      public static final double MIN_THRESHOLD
      Minimum value that can be set as threshold. Threshold must be strictly greater than 0.0.
      See Also:
    • threshold

      private double threshold
      Threshold to determine whether homographies are inliers or not when testing possible estimation solutions. The threshold refers to the amount of error a possible solution has on the ortho-normality assumption of rotation matrices.
  • Constructor Details

    • MSACImageOfAbsoluteConicRobustEstimator

      public MSACImageOfAbsoluteConicRobustEstimator()
      Constructor.
    • MSACImageOfAbsoluteConicRobustEstimator

      public MSACImageOfAbsoluteConicRobustEstimator(ImageOfAbsoluteConicRobustEstimatorListener listener)
      Constructor.
      Parameters:
      listener - listener to be notified of events such as when estimation starts, ends or its progress significantly changes.
    • MSACImageOfAbsoluteConicRobustEstimator

      public MSACImageOfAbsoluteConicRobustEstimator(List<com.irurueta.geometry.Transformation2D> homographies)
      Constructor.
      Parameters:
      homographies - list of homographies (2D transformations) used to estimate the image of absolute conic (IAC), which can be used to obtain pinhole camera intrinsic parameters.
      Throws:
      IllegalArgumentException - if not enough homographies are provided for default settings. Hence, at least 1 homography must be provided.
    • MSACImageOfAbsoluteConicRobustEstimator

      public MSACImageOfAbsoluteConicRobustEstimator(List<com.irurueta.geometry.Transformation2D> homographies, ImageOfAbsoluteConicRobustEstimatorListener listener)
      Constructor.
      Parameters:
      homographies - list of homographies (2D transformations) used to estimate the image of absolute conic (IAC), which can be used to obtain pinhole camera intrinsic parameters.
      listener - listener to be notified of events such as when estimation starts, ends or estimation progress changes.
      Throws:
      IllegalArgumentException - if not enough homographies are provided for default settings. Hence, at least 1 homography must be provided.
  • Method Details

    • getThreshold

      public double getThreshold()
      Returns threshold to determine whether homographies are inliers or not when testing possible estimation solutions. The threshold refers to the amount of error a possible solution has on the ortho-normality assumption of rotation matrices.
      Returns:
      threshold to determine whether homographies are inliers or not when testing possible estimation solutions.
    • setThreshold

      public void setThreshold(double threshold) throws com.irurueta.geometry.estimators.LockedException
      Sets threshold to determine whether homographies are inliers or not when testing possible estimation solutions. The threshold refers to the amount of error a possible solution has on the ortho-normality assumption of rotation matrices.
      Parameters:
      threshold - threshold to determine whether homographies are inliers or not when testing possible estimation solutions.
      Throws:
      IllegalArgumentException - if provided value is equal or less than zero.
      com.irurueta.geometry.estimators.LockedException - if robust estimator is locked because an estimation is already in progress.
    • estimate

      public ImageOfAbsoluteConic estimate() throws com.irurueta.geometry.estimators.LockedException, com.irurueta.geometry.estimators.NotReadyException, com.irurueta.numerical.robust.RobustEstimatorException
      Estimates Image of Absolute Conic (IAC).
      Specified by:
      estimate in class ImageOfAbsoluteConicRobustEstimator
      Returns:
      estimated IAC.
      Throws:
      com.irurueta.geometry.estimators.LockedException - if robust estimator is locked because an estimation is already in progress.
      com.irurueta.geometry.estimators.NotReadyException - if provided input data is not enough to start the estimation.
      com.irurueta.numerical.robust.RobustEstimatorException - if estimation fails for any reason (i.e. numerical instability, no solution available, etc).
    • getMethod

      public com.irurueta.numerical.robust.RobustEstimatorMethod getMethod()
      Returns method being used for robust estimation
      Specified by:
      getMethod in class ImageOfAbsoluteConicRobustEstimator
      Returns:
      method being used for robust estimation