Package boofcv.alg.structure
Class ResolveSceneScaleAmbiguity
java.lang.Object
boofcv.alg.structure.ResolveSceneScaleAmbiguity
- All Implemented Interfaces:
VerbosePrint
This determines how to convert the scale from one "scene" to another scene, given a common view and features.
The inputs are a set of observations and views from each scene. Observations in the common
view between the two scenes must be identical.
The approach involves determining the depth by triangulation of each image feature
given the two scenes. Then each feature is used to estimate a potential scale. The scales are put into a list
and the most common solution is returned.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Used to lookup feature pixel observations in a scene. -
Field Summary
Modifier and TypeFieldDescriptiondouble
Used to identify points that are at or near infinity that should not be consideredSpecifies which triangulation algorithm will be useddouble
A window of size fraction*(number of estimates) will be done when searching for the true scale -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
initialize
(int numFeatures) Resets internal data structures and specifies number of featuresboolean
process
(ScaleSe3_F64 scene1_to_scene2) Process both scenes and determines how to convert the scale and SE3 between the two scenesvoid
setScene1
(ResolveSceneScaleAmbiguity.FeatureObservations features, List<Se3_F64> listWorldToView, List<Point2Transform2_F64> intrinsics) Specifies information from the first scene.void
setScene2
(ResolveSceneScaleAmbiguity.FeatureObservations features, List<Se3_F64> listWorldToView, List<Point2Transform2_F64> intrinsics) Specifies information from the second scene.void
setVerbose
(@Nullable PrintStream out, @Nullable Set<String> configuration)
-
Field Details
-
windowFraction
public double windowFractionA window of size fraction*(number of estimates) will be done when searching for the true scale -
triangulator
Specifies which triangulation algorithm will be used -
infinityTol
public double infinityTolUsed to identify points that are at or near infinity that should not be considered
-
-
Constructor Details
-
ResolveSceneScaleAmbiguity
public ResolveSceneScaleAmbiguity()
-
-
Method Details
-
initialize
public void initialize(int numFeatures) Resets internal data structures and specifies number of features -
setScene1
public void setScene1(ResolveSceneScaleAmbiguity.FeatureObservations features, List<Se3_F64> listWorldToView, List<Point2Transform2_F64> intrinsics) Specifies information from the first scene.- Parameters:
features
- Provides access to all features in each view, except the first viewlistWorldToView
- Pose of each view in the world frame of the sceneintrinsics
- Conversion from pixel to normalized image coordinate for each view
-
setScene2
public void setScene2(ResolveSceneScaleAmbiguity.FeatureObservations features, List<Se3_F64> listWorldToView, List<Point2Transform2_F64> intrinsics) Specifies information from the second scene.- Parameters:
features
- Provides access to all features in each view, except the first viewlistWorldToView
- Pose of each view in the world frame of the sceneintrinsics
- Conversion from pixel to normalized image coordinate for each view
-
process
Process both scenes and determines how to convert the scale and SE3 between the two scenes- Parameters:
scene1_to_scene2
- (Output) Storage for transform from scene 1 to scene 2- Returns:
- true if successful
-
setVerbose
public void setVerbose(@Nullable @Nullable PrintStream out, @Nullable @Nullable Set<String> configuration) - Specified by:
setVerbose
in interfaceVerbosePrint
-