Interface OctTreeSplitCriterion

All Known Implementing Classes:
ConsensusSetCriterion, CrossViewCorrespondenceCriterion

public interface OctTreeSplitCriterion
Generic criterion interface for deciding whether to continue splitting an octant in the oct-tree splitting algorithm. Implementations determine based on some metric (e.g., interest point correspondence count) whether a region should be further subdivided. The splitting algorithm uses recursive correspondence partitioning: correspondences are loaded once per view, then partitioned as intervals are split, so each recursive call only processes its subset.
  • Method Details

    • loadCorrespondences

      Load all correspondences for a view. Called once at the start of splitting. The returned list will be partitioned as the oct-tree recurses. Default implementation loads cross-view correspondences for all labels.
      Parameters:
      viewId - The ViewId to load correspondences for
      Returns:
      List of correspondences for this view
    • shouldSplit

      boolean shouldSplit(List<OctTreeSplitCriterion.SplitCorrespondence> correspondences)
      Evaluates whether to continue splitting based on pre-filtered correspondences. The correspondences have already been filtered to only include those within the current interval.
      Parameters:
      correspondences - The correspondences within the current interval
      Returns:
      true if this region should be split further, false if it should remain as-is
    • scoreSplit

      Score a candidate binary split. Lower is better. Used as tiebreaker in chooseBestSplitDimension when multiple dimensions produce the same number of clean children.
      Parameters:
      child1 - Correspondences in the first child
      child2 - Correspondences in the second child
      Returns:
      Score (lower = better split). Default: 0 (no preference).
    • description

      String description()
      Returns:
      A description of this criterion and its parameters for logging/display
    • getSpimData

      SpimData2 getSpimData()
      Returns:
      The SpimData2 used by this criterion (needed for accessing timepoints, views, etc.)
    • getLabels

      Set<String> getLabels()
      Returns:
      The set of interest point labels to consider for correspondences