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.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic classLightweight structure for correspondence data during splitting. -
Method Summary
Modifier and TypeMethodDescriptionLoad all correspondences for a view.default doublescoreSplit(List<OctTreeSplitCriterion.SplitCorrespondence> child1, List<OctTreeSplitCriterion.SplitCorrespondence> child2) Score a candidate binary split.booleanshouldSplit(List<OctTreeSplitCriterion.SplitCorrespondence> correspondences) Evaluates whether to continue splitting based on pre-filtered correspondences.
-
Method Details
-
loadCorrespondences
default List<OctTreeSplitCriterion.SplitCorrespondence> loadCorrespondences(mpicbg.spim.data.sequence.ViewId viewId) 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
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
default double scoreSplit(List<OctTreeSplitCriterion.SplitCorrespondence> child1, List<OctTreeSplitCriterion.SplitCorrespondence> child2) 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 childchild2- 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
- Returns:
- The set of interest point labels to consider for correspondences
-