Class Point2DRefiner<T extends Point2D>

Type Parameters:
T - an implementation of a 2D point.
Direct Known Subclasses:
HomogeneousPoint2DRefiner, InhomogeneousPoint2DRefiner

public abstract class Point2DRefiner<T extends Point2D> extends SamplesAndInliersDataRefiner<T,Line2D>
Refines a 2D point by taking into account an initial estimation, inlier samples and their residuals. This class can be used to find a solution that minimizes error of inliers in LMSE terms. Typically, a refiner is used by a robust estimator, however it can also be useful in some other situations.
  • Field Details

    • refinementStandardDeviation

      private double refinementStandardDeviation
      Standard deviation used for Levenberg-Marquardt fitting during refinement. Returned value gives an indication of how much variance each residual has. Typically, this value is related to the threshold used on each robust estimation, since residuals of found inliers are within the range of such threshold.
  • Constructor Details

    • Point2DRefiner

      protected Point2DRefiner()
      Constructor.
    • Point2DRefiner

      protected Point2DRefiner(T initialEstimation, boolean keepCovariance, BitSet inliers, double[] residuals, int numInliers, List<Line2D> samples, double refinementStandardDeviation)
      Constructor.
      Parameters:
      initialEstimation - initial estimation to be set.
      keepCovariance - true if covariance of estimation must be kept after refinement, false otherwise.
      inliers - set indicating which of the provided matches are inliers.
      residuals - residuals for matched samples.
      numInliers - number of inliers on initial estimation.
      samples - collection of samples.
      refinementStandardDeviation - standard deviation used for Levenberg-Marquardt fitting.
    • Point2DRefiner

      protected Point2DRefiner(T initialEstimation, boolean keepCovariance, com.irurueta.numerical.robust.InliersData inliersData, List<Line2D> samples, double refinementStandardDeviation)
      Constructor.
      Parameters:
      initialEstimation - initial estimation to be set.
      keepCovariance - true if covariance of estimation must be kept after refinement, false otherwise.
      inliersData - inlier data, typically obtained from a robust estimator.
      samples - collection of samples.
      refinementStandardDeviation - standard deviation used for Levenberg-Marquardt fitting.
  • Method Details

    • getRefinementStandardDeviation

      public double getRefinementStandardDeviation()
      Gets standard deviation used for Levenberg-Marquardt fitting during refinement. Returned value gives an indication of how much variance each residual has. Typically, this value is related to the threshold used on each robust estimation, since residuals of found inliers are within the range of such threshold.
      Returns:
      standard deviation used for refinement.
    • setRefinementStandardDeviation

      public void setRefinementStandardDeviation(double refinementStandardDeviation) throws LockedException
      Sets standard deviation used for Levenberg-Marquardt fitting during refinement. Returned value gives an indication of how much variance each residual has. Typically, this value is related to the threshold used on each robust estimation, since residuals of found inliers are within the range of such threshold.
      Parameters:
      refinementStandardDeviation - standard deviation used for refinement.
      Throws:
      LockedException - if estimator is locked.
    • residual

      protected double residual(Point2D point, Line2D line)
      Computes the residual between a point and a line as their distance.
      Parameters:
      point - a point
      line - a line.
      Returns:
      residual (distance between provided point and line).
    • totalResidual

      protected double totalResidual(Point2D point)
      Computes total residual among all provided inlier samples.
      Parameters:
      point - a point.
      Returns:
      total residual.