Class RANSACLine2DRobustEstimator

java.lang.Object
com.irurueta.geometry.estimators.Line2DRobustEstimator
com.irurueta.geometry.estimators.RANSACLine2DRobustEstimator

public class RANSACLine2DRobustEstimator extends Line2DRobustEstimator
Finds the best 2D line for provided collection of 2D points using RANSAC algorithm.
  • Field Details

    • DEFAULT_THRESHOLD

      public static final double DEFAULT_THRESHOLD
      Constant defining default threshold to determine whether points are inliers or not. Because typical resolution for points is 1 pixel, then default threshold is defined as 1.
      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 points are inliers or not when testing possible estimation solutions. The threshold refers to the amount of error (i.e. distance) a possible solution has on a sampled line.
  • Constructor Details

    • RANSACLine2DRobustEstimator

      public RANSACLine2DRobustEstimator()
      Constructor.
    • RANSACLine2DRobustEstimator

      public RANSACLine2DRobustEstimator(List<Point2D> points)
      Constructor with points.
      Parameters:
      points - 2D points to estimate a 2D line.
      Throws:
      IllegalArgumentException - if provided list of points doesn't have a size greater or equal than MINIMUM_SIZE.
    • RANSACLine2DRobustEstimator

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

      public RANSACLine2DRobustEstimator(Line2DRobustEstimatorListener listener, List<Point2D> points)
      Constructor.
      Parameters:
      listener - listener to be notified of events such as when estimation starts, ends or its progress significantly changes.
      points - 2D points to estimate a 2D line.
      Throws:
      IllegalArgumentException - if provided list of points doesn't have a size greater or equal than MINIMUM_SIZE.
  • Method Details

    • getThreshold

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

      public void setThreshold(double threshold) throws LockedException
      Sets threshold to determine whether points are inliers or not when testing possible estimation solutions. The threshold refers to the amount of error a possible solution has on a given point.
      Parameters:
      threshold - threshold to be set.
      Throws:
      IllegalArgumentException - if provided value is equal or less than zero.
      LockedException - if robust estimator is locked because an estimation is already in progress.
    • estimate

      public Line2D estimate() throws LockedException, NotReadyException, com.irurueta.numerical.robust.RobustEstimatorException
      Estimates a 2D line using a robust estimator and the best set of 2D points that pass through the estimated 2D line (i.e. belong to its locus).
      Specified by:
      estimate in class Line2DRobustEstimator
      Returns:
      a 2D line.
      Throws:
      LockedException - if robust estimator is locked because an estimation is already in progress.
      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 Line2DRobustEstimator
      Returns:
      method being used for robust estimation.