Class ResolveSceneScaleAmbiguity

java.lang.Object
boofcv.alg.structure.ResolveSceneScaleAmbiguity
All Implemented Interfaces:
VerbosePrint

public class ResolveSceneScaleAmbiguity
extends Object
implements 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.
  • Field Details

    • windowFraction

      public double windowFraction
      A window of size fraction*(number of estimates) will be done when searching for the true scale
    • triangulator

      public TriangulateNViewsMetricH triangulator
      Specifies which triangulation algorithm will be used
    • infinityTol

      public double infinityTol
      Used 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 view
      listWorldToView - Pose of each view in the world frame of the scene
      intrinsics - 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 view
      listWorldToView - Pose of each view in the world frame of the scene
      intrinsics - Conversion from pixel to normalized image coordinate for each view
    • process

      public boolean process​(ScaleSe3_F64 scene1_to_scene2)
      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 interface VerbosePrint