Package boofcv.factory.geo
Class FactoryMultiViewRobust
java.lang.Object
boofcv.factory.geo.FactoryMultiViewRobust
Factory for creating robust false-positive tolerant estimation algorithms in multi-view geometry. These
algorithms tend to have a lot of boilerplate associated with them and the goal of this factory
is to make their use much easier and less error prone.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbaselineLMedS(@Nullable ConfigEssential configEssential, ConfigLMedS configLMedS) static RansacCalibrated2<Se3_F64,AssociatedPair3D> baselinePointingRansac(@Nullable ConfigEssential configEssential, ConfigRansac configRansac) Robust solution for estimating the stereo baselineSe3_F64using epipolar geometry from two views withRansacCalibrated2.static RansacCalibrated<Se3_F64,AssociatedPair> baselineRansac(@Nullable ConfigEssential configEssential, ConfigRansac configRansac) Robust solution for estimating the stereo baselineSe3_F64using epipolar geometry from two views withRansacCalibrated.static <Model,Point>
LeastMedianOfSquares<Model,Point> createLMEDS(ConfigLMedS configLMedS, ModelManager<Model> manager, Class<Point> pointType) static <Model,Point>
Ransac<Model,Point> createRansac(ConfigRansac configRansac, double ransacTol, ModelManager<Model> manager, Class<Point> pointType) Returns a new instance of RANSAC.essentialRansac(@Nullable ConfigEssential configEssential, ConfigRansac configRansac) Estimates the essential matrix given associated image features in normalized image coordinates using RANSAC.static ModelMatcher<DMatrixRMaj,AssociatedPair> fundamentalLMedS(@Nullable ConfigFundamental configFundamental, ConfigLMedS configLMedS) static ModelMatcher<DMatrixRMaj,AssociatedPair> fundamentalRansac(ConfigFundamental configFundamental, ConfigRansac configRansac) homographyCalibratedRansac(ConfigRansac configRansac) Estimates a homography from normalized image coordinates but computes the error in pixel coordinateshomographyLMedS(@Nullable ConfigHomography configHomography, ConfigLMedS configLMedS) Robust solution for estimatingHomography2D_F64withLMedS.static Ransac<Homography2D_F64,AssociatedPair> homographyRansac(@Nullable ConfigHomography configHomography, ConfigRansac configRansac) Robust solution for estimatingHomography2D_F64withRansac.metricThreeViewLmeds(@Nullable ConfigPixelsToMetric configSelfcalib, ConfigLMedS configLMedS) metricThreeViewRansac(@Nullable ConfigPixelsToMetric configSelfcalib, ConfigRansac configRansac) Projective to metric self calibration from 3-viewsstatic ModelMatcherMultiview<Se3_F64,Point2D3D> pnpLMedS(@Nullable ConfigPnP configPnP, ConfigLMedS configLMedS) Robust solution to PnP problem usingLMedS.static RansacCalibrated<Se3_F64,Point2D3D> pnpRansac(@Nullable ConfigPnP configPnP, ConfigRansac configRansac) Robust solution to PnP problem usingRansac.static Ransac<TrifocalTensor,AssociatedTriple> trifocalRansac(@Nullable ConfigTrifocal configTrifocal, @Nullable ConfigTrifocalError configError, ConfigRansac configRansac) Robust RANSAC based estimator for
-
Constructor Details
-
FactoryMultiViewRobust
public FactoryMultiViewRobust()
-
-
Method Details
-
pnpLMedS
public static ModelMatcherMultiview<Se3_F64,Point2D3D> pnpLMedS(@Nullable @Nullable ConfigPnP configPnP, ConfigLMedS configLMedS) Robust solution to PnP problem usingLMedS. Input observations are in normalized image coordinates.- Input observations are in normalized image coordinates NOT pixels
- Error units are pixels squared.
See code for all the details.
- Parameters:
configPnP- PnP parameters. Can't be null.configLMedS- Parameters for LMedS. Can't be null.- Returns:
- Robust Se3_F64 estimator
-
pnpRansac
public static RansacCalibrated<Se3_F64,Point2D3D> pnpRansac(@Nullable @Nullable ConfigPnP configPnP, ConfigRansac configRansac) Robust solution to PnP problem usingRansac. Input observations are in normalized image coordinates. Found transform is from world to camera.NOTE: Observations are in normalized image coordinates NOT pixels.
See code for all the details.
- Parameters:
configPnP- PnP parameters. Can't be null.configRansac- Parameters for RANSAC. Can't be null.- Returns:
- Robust Se3_F64 estimator
- See Also:
-
baselineLMedS
public static ModelMatcherMultiview<Se3_F64,AssociatedPair> baselineLMedS(@Nullable @Nullable ConfigEssential configEssential, ConfigLMedS configLMedS) Robust solution for estimatingSe3_F64using epipolar geometry from two views withLMedS. Input observations are in normalized image coordinates.- Error units is pixels squared times two
See code for all the details.
- Parameters:
configEssential- Essential matrix estimation parameters. Can't be null.configLMedS- Parameters for RANSAC. Can't be null.- Returns:
- Robust Se3_F64 estimator
-
fundamentalLMedS
public static ModelMatcher<DMatrixRMaj,AssociatedPair> fundamentalLMedS(@Nullable @Nullable ConfigFundamental configFundamental, ConfigLMedS configLMedS) -
baselineRansac
public static RansacCalibrated<Se3_F64,AssociatedPair> baselineRansac(@Nullable @Nullable ConfigEssential configEssential, ConfigRansac configRansac) Robust solution for estimating the stereo baselineSe3_F64using epipolar geometry from two views withRansacCalibrated. Input observations are in normalized image coordinates.See code for all the details.
- Parameters:
configEssential- Essential matrix estimation parameters.configRansac- Parameters for RANSAC. Can't be null.- Returns:
- Robust Se3_F64 estimator
-
baselinePointingRansac
public static RansacCalibrated2<Se3_F64,AssociatedPair3D> baselinePointingRansac(@Nullable @Nullable ConfigEssential configEssential, ConfigRansac configRansac) Robust solution for estimating the stereo baselineSe3_F64using epipolar geometry from two views withRansacCalibrated2. Input observations are in pointing vector coordinates.See code for all the details.
- Parameters:
configEssential- Essential matrix estimation parameters.configRansac- Parameters for RANSAC. Can't be null.- Returns:
- Robust Se3_F64 estimator
-
essentialRansac
public static ModelMatcherMultiview<DMatrixRMaj,AssociatedPair> essentialRansac(@Nullable @Nullable ConfigEssential configEssential, ConfigRansac configRansac) Estimates the essential matrix given associated image features in normalized image coordinates using RANSAC.- Parameters:
configEssential- (Optional) Configuration for computing essential matrixconfigRansac- Configuration for RANSAC- Returns:
- Robust essential matrix estimator
-
fundamentalRansac
public static ModelMatcher<DMatrixRMaj,AssociatedPair> fundamentalRansac(ConfigFundamental configFundamental, ConfigRansac configRansac) -
homographyLMedS
public static LeastMedianOfSquares<Homography2D_F64,AssociatedPair> homographyLMedS(@Nullable @Nullable ConfigHomography configHomography, ConfigLMedS configLMedS) Robust solution for estimatingHomography2D_F64withLMedS. Input observations are in pixel coordinates.- Four point linear is used internally
- inlierThreshold is in pixels
See code for all the details.
- Parameters:
configHomography- Homography estimation parameters. If null default is used.configLMedS- Parameters for LMedS. Can't be null.- Returns:
- Homography estimator
-
homographyRansac
public static Ransac<Homography2D_F64,AssociatedPair> homographyRansac(@Nullable @Nullable ConfigHomography configHomography, ConfigRansac configRansac) Robust solution for estimatingHomography2D_F64withRansac. Input observations are in pixel coordinates.- Four point linear is used internally
- inlierThreshold is in pixels
See code for all the details.
- Parameters:
configHomography- Homography estimation parameters. If null default is used.configRansac- Parameters for RANSAC. Can't be null.- Returns:
- Homography estimator
-
homographyCalibratedRansac
public static RansacCalibrated<Homography2D_F64,AssociatedPair> homographyCalibratedRansac(ConfigRansac configRansac) Estimates a homography from normalized image coordinates but computes the error in pixel coordinates- Parameters:
configRansac- RANSAC configuration- Returns:
- Ransac
- See Also:
-
trifocalRansac
public static Ransac<TrifocalTensor,AssociatedTriple> trifocalRansac(@Nullable @Nullable ConfigTrifocal configTrifocal, @Nullable @Nullable ConfigTrifocalError configError, ConfigRansac configRansac) Robust RANSAC based estimator for- Parameters:
configTrifocal- Configuration for trifocal tensor calculationconfigError- Configuration for how trifocal error is computedconfigRansac- Configuration for RANSAC- Returns:
- RANSAC
- See Also:
-
metricThreeViewRansac
public static RansacProjective<MetricCameraTriple,AssociatedTriple> metricThreeViewRansac(@Nullable @Nullable ConfigPixelsToMetric configSelfcalib, ConfigRansac configRansac) Projective to metric self calibration from 3-views- Parameters:
configSelfcalib- (Input) configuration for self calibrationconfigRansac- (Input) configuration for RANSAC- Returns:
- RANSAC
-
metricThreeViewLmeds
public static LeastMedianOfSquaresProjective<MetricCameraTriple,AssociatedTriple> metricThreeViewLmeds(@Nullable @Nullable ConfigPixelsToMetric configSelfcalib, ConfigLMedS configLMedS) -
createLMEDS
public static <Model,Point> LeastMedianOfSquares<Model,Point> createLMEDS(ConfigLMedS configLMedS, ModelManager<Model> manager, Class<Point> pointType) -
createRansac
public static <Model,Point> Ransac<Model,Point> createRansac(ConfigRansac configRansac, double ransacTol, ModelManager<Model> manager, Class<Point> pointType) Returns a new instance of RANSAC. If concurrency is turned on then a concurrent version will be returned.- Parameters:
ransacTol- inlier tolerance. The tolerance on config isn't used since that might have the wrong units. This lets the user easily adjust the units without modifying the config.
-