Class RefineMetricGraphSubset

All Implemented Interfaces:

public class RefineMetricGraphSubset
extends Object
implements VerbosePrint
Used to refine only part of a SceneWorkingGraph. All the views which are to be optimized are first specified. Then (optionally) views which are fixed and considered known are specified. 1) Specifiy the subset by calling setSubset() 2) Mark views as known, if applicable 3) Call process to optimize Internally it changes the coordinate system from the scene's world to view[0] and rescales it so the largest translation has a norm of 1. This is to improve optimization performance which works best with numbers close to 1.0.
  • Constructor Details

    • RefineMetricGraphSubset

      public RefineMetricGraphSubset()
  • Method Details

    • setSubset

      public void setSubset​(SceneWorkingGraph src, List<SceneWorkingGraph.View> srcViews)
      Creates a subset of the scene using the provided views. If a view references other views not in this list in its inlier sets then those views are added to the subview but marked as known so that they aren't updated
      src - The scene
      srcViews - Views in the scene which compose the sub-scene
    • setViewKnown

      public void setViewKnown​(String id)
      Specifies the scene as being known.
    • process

      public boolean process​(LookUpSimilarImages db)
      Optimizes the subscene specified earlier and copies over the results
      true if it finished without issuez
    • localToGlobal

      protected void localToGlobal​(Se3_F64 cpy_to_view, Se3_F64 src_to_view)
      Undoes the scale and coordinate system change
    • markKnownParameters

      protected void markKnownParameters​(MetricBundleAdjustmentUtils utils)
      If a view or camera is fixed then mark it as known
    • setVerbose

      public void setVerbose​(@Nullable @Nullable PrintStream out, @Nullable @Nullable Set<String> configuration)
      Specified by:
      setVerbose in interface VerbosePrint