Class RANSACDualAbsoluteQuadricRobustEstimator

java.lang.Object
com.irurueta.ar.calibration.estimators.DualAbsoluteQuadricRobustEstimator
com.irurueta.ar.calibration.estimators.RANSACDualAbsoluteQuadricRobustEstimator

public class RANSACDualAbsoluteQuadricRobustEstimator extends DualAbsoluteQuadricRobustEstimator
Finds the best dual absolute quadric (DAQ) using RANSAC algorithm.
  • Field Details

    • DEFAULT_THRESHOLD

      public static final double DEFAULT_THRESHOLD
      Constant defining default threshold to determine whether cameras are inliers or not. Threshold is defined by the equations used to estimate the DAQ depending on the required settings (zero skewness, principal point at origin, and known aspect ratio).
      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 cameras are inliers or not when testing possible estimation solutions. The threshold refers to the amount of error a possible solution has.
  • Constructor Details

    • RANSACDualAbsoluteQuadricRobustEstimator

      public RANSACDualAbsoluteQuadricRobustEstimator()
      Constructor.
    • RANSACDualAbsoluteQuadricRobustEstimator

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

      public RANSACDualAbsoluteQuadricRobustEstimator(List<com.irurueta.geometry.PinholeCamera> cameras)
      Constructor.
      Parameters:
      cameras - list of cameras used to estimate the dual absolute quadric (DAQ), which can be used to obtain pinhole camera intrinsic parameters.
      Throws:
      IllegalArgumentException - if not enough cameras are provided for default settings. Hence, at least 2 cameras must be provided.
    • RANSACDualAbsoluteQuadricRobustEstimator

      public RANSACDualAbsoluteQuadricRobustEstimator(List<com.irurueta.geometry.PinholeCamera> cameras, DualAbsoluteQuadricRobustEstimatorListener listener)
      Constructor.
      Parameters:
      cameras - list of cameras used to estimate the dual absolute quadric (DAQ), 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 cameras are provided for default settings. Hence, at least 2 cameras must be provided.
  • Method Details

    • getThreshold

      public double getThreshold()
      Returns threshold to determine whether cameras are inliers or not when testing possible estimation solutions. The threshold refers to the amount of error a possible solution has.
      Returns:
      threshold to determine whether cameras are inliers or not.
    • setThreshold

      public void setThreshold(double threshold) throws com.irurueta.geometry.estimators.LockedException
      Sets threshold to determine whether cameras are inliers or not when testing possible estimation solutions. The threshold refers to the amount of error a possible solution has.
      Parameters:
      threshold - threshold to determine whether cameras 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 DualAbsoluteQuadric estimate() throws com.irurueta.geometry.estimators.LockedException, com.irurueta.geometry.estimators.NotReadyException, com.irurueta.numerical.robust.RobustEstimatorException
      Estimates the Dual Absolute Quadric using provided cameras.
      Specified by:
      estimate in class DualAbsoluteQuadricRobustEstimator
      Returns:
      estimated Dual Absolute Quadric (DAQ).
      Throws:
      com.irurueta.geometry.estimators.LockedException - if robust estimator is locked.
      com.irurueta.geometry.estimators.NotReadyException - if no valid input data has already been provided.
      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 DualAbsoluteQuadricRobustEstimator
      Returns:
      method being used for robust estimation.