Class RANSACImageOfAbsoluteConicRobustEstimator
java.lang.Object
com.irurueta.ar.calibration.estimators.ImageOfAbsoluteConicRobustEstimator
com.irurueta.ar.calibration.estimators.RANSACImageOfAbsoluteConicRobustEstimator
Finds the best Image of Absolute Conic (IAC) using RANSAC algorithm.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final double
Constant defining default threshold to determine whether homographies are inliers or not.static final double
Minimum value that can be set as threshold.private double
Threshold to determine whether homographies are inliers or not when testing possible estimation solutions.Fields inherited from class com.irurueta.ar.calibration.estimators.ImageOfAbsoluteConicRobustEstimator
confidence, DEFAULT_CONFIDENCE, DEFAULT_MAX_ITERATIONS, DEFAULT_PROGRESS_DELTA, DEFAULT_ROBUST_METHOD, homographies, iacEstimator, listener, locked, MAX_CONFIDENCE, MAX_PROGRESS_DELTA, maxIterations, MIN_CONFIDENCE, MIN_ITERATIONS, MIN_PROGRESS_DELTA, progressDelta
-
Constructor Summary
ConstructorsConstructorDescriptionConstructor.Constructor.RANSACImageOfAbsoluteConicRobustEstimator
(List<com.irurueta.geometry.Transformation2D> homographies) Constructor.RANSACImageOfAbsoluteConicRobustEstimator
(List<com.irurueta.geometry.Transformation2D> homographies, ImageOfAbsoluteConicRobustEstimatorListener listener) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionestimate()
Estimates Image of Absolute Conic (IAC).com.irurueta.numerical.robust.RobustEstimatorMethod
Returns method being used for robust estimation.double
Returns threshold to determine whether homographies are inliers or not when testing possible estimation solutions.void
setThreshold
(double threshold) Sets threshold to determine whether homographies are inliers or not when testing possible estimation solutions.Methods inherited from class com.irurueta.ar.calibration.estimators.ImageOfAbsoluteConicRobustEstimator
create, create, create, create, create, create, getConfidence, getFocalDistanceAspectRatio, getHomographies, getListener, getMaxIterations, getMinNumberOfRequiredHomographies, getProgressDelta, getQualityScores, isFocalDistanceAspectRatioKnown, isListenerAvailable, isLocked, isPrincipalPointAtOrigin, isReady, isZeroSkewness, residual, setConfidence, setFocalDistanceAspectRatio, setFocalDistanceAspectRatioKnown, setHomographies, setListener, setMaxIterations, setPrincipalPointAtOrigin, setProgressDelta, setQualityScores, setZeroSkewness
-
Field Details
-
DEFAULT_THRESHOLD
public static final double DEFAULT_THRESHOLDConstant 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_THRESHOLDMinimum value that can be set as threshold. Threshold must be strictly greater than 0.0.- See Also:
-
threshold
private double thresholdThreshold 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
-
RANSACImageOfAbsoluteConicRobustEstimator
public RANSACImageOfAbsoluteConicRobustEstimator()Constructor. -
RANSACImageOfAbsoluteConicRobustEstimator
public RANSACImageOfAbsoluteConicRobustEstimator(ImageOfAbsoluteConicRobustEstimatorListener listener) Constructor.- Parameters:
listener
- listener to be notified of events such as when estimation starts, ends or its progress significantly changes.
-
RANSACImageOfAbsoluteConicRobustEstimator
public RANSACImageOfAbsoluteConicRobustEstimator(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.
-
RANSACImageOfAbsoluteConicRobustEstimator
public RANSACImageOfAbsoluteConicRobustEstimator(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.RobustEstimatorExceptionEstimates Image of Absolute Conic (IAC).- Specified by:
estimate
in classImageOfAbsoluteConicRobustEstimator
- 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 classImageOfAbsoluteConicRobustEstimator
- Returns:
- method being used for robust estimation.
-