Package com.irurueta.geometry.refiners
Class Point3DRefiner<T extends Point3D>
java.lang.Object
com.irurueta.geometry.refiners.Refiner<T>
com.irurueta.geometry.refiners.InliersDataRefiner<T>
com.irurueta.geometry.refiners.SamplesAndInliersDataRefiner<T,Plane>
com.irurueta.geometry.refiners.Point3DRefiner<T>
- Type Parameters:
T- an implementation of a 3D point.
- Direct Known Subclasses:
HomogeneousPoint3DRefiner,InhomogeneousPoint3DRefiner
public abstract class Point3DRefiner<T extends Point3D>
extends SamplesAndInliersDataRefiner<T,Plane>
Refines a 3D 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 Summary
FieldsModifier and TypeFieldDescriptionprivate doubleStandard deviation used for Levenberg-Marquardt fitting during refinement.Fields inherited from class com.irurueta.geometry.refiners.SamplesAndInliersDataRefiner
samplesFields inherited from class com.irurueta.geometry.refiners.InliersDataRefiner
inliers, numInliers, residualsFields inherited from class com.irurueta.geometry.refiners.Refiner
covariance, DEFAULT_KEEP_COVARIANCE, initialEstimation, keepCovariance, listener, locked -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedConstructor.protectedPoint3DRefiner(T initialEstimation, boolean keepCovariance, com.irurueta.numerical.robust.InliersData inliersData, List<Plane> samples, double refinementStandardDeviation) Constructor.protectedPoint3DRefiner(T initialEstimation, boolean keepCovariance, BitSet inliers, double[] residuals, int numInliers, List<Plane> samples, double refinementStandardDeviation) Constructor. -
Method Summary
Modifier and TypeMethodDescriptiondoubleGets standard deviation used for Levenberg-Marquardt fitting during refinement.protected doubleComputes the residual between a point and a plane as their distance.voidsetRefinementStandardDeviation(double refinementStandardDeviation) Sets standard deviation used for Levenberg-Marquardt fitting during refinement.protected doubletotalResidual(Point3D point) Computes total residual among all provided inlier samples.Methods inherited from class com.irurueta.geometry.refiners.SamplesAndInliersDataRefiner
getSamples, isReady, setSamplesMethods inherited from class com.irurueta.geometry.refiners.InliersDataRefiner
getInliers, getNumInliers, getResiduals, getTotalSamples, setInliers, setInliersData, setNumInliers, setResidualsMethods inherited from class com.irurueta.geometry.refiners.Refiner
getCovariance, getInitialEstimation, getListener, isCovarianceKept, isLocked, refine, refine, setCovarianceKept, setInitialEstimation, setListener
-
Field Details
-
refinementStandardDeviation
private double refinementStandardDeviationStandard 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
-
Point3DRefiner
protected Point3DRefiner()Constructor. -
Point3DRefiner
protected Point3DRefiner(T initialEstimation, boolean keepCovariance, BitSet inliers, double[] residuals, int numInliers, List<Plane> 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.
-
Point3DRefiner
protected Point3DRefiner(T initialEstimation, boolean keepCovariance, com.irurueta.numerical.robust.InliersData inliersData, List<Plane> 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
Computes the residual between a point and a plane as their distance.- Parameters:
point- a point.plane- a plane.- Returns:
- residual (distance between provided point and plane).
-
totalResidual
Computes total residual among all provided inlier samples.- Parameters:
point- a point.- Returns:
- total residual.
-