Class CrossViewCorrespondenceCriterion
java.lang.Object
net.preibisch.mvrecon.process.splitting.CrossViewCorrespondenceCriterion
- All Implemented Interfaces:
OctTreeSplitCriterion
Criterion that counts cross-view corresponding interest points within a region.
An interest point is counted as a "cross-view correspondence" if it has
at least one correspondence to a DIFFERENT view (not within the same original view).
If the count of unique detections exceeds the threshold, the region should be split further.
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.preibisch.mvrecon.process.splitting.OctTreeSplitCriterion
OctTreeSplitCriterion.SplitCorrespondence -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCrossViewCorrespondenceCriterion(SpimData2 spimData, Set<String> labels, int maxCorrespondences) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionintqueryGUI(ij.gui.GenericDialog gd, SpimData2 data) Query GUI components and create CrossViewCorrespondenceCriterion instance.queryGUI(ij.gui.GenericDialog gd, SpimData2 data, Set<Integer> driveByChannelIds) Query GUI components and create CrossViewCorrespondenceCriterion instance.doublescoreSplit(List<OctTreeSplitCriterion.SplitCorrespondence> child1, List<OctTreeSplitCriterion.SplitCorrespondence> child2) Score a candidate binary split.static booleansetupGUI(ij.gui.GenericDialog gd, SpimData2 data) Setup GUI components for cross-view correspondence criterion.static booleansetupGUI(ij.gui.GenericDialog gd, SpimData2 data, Set<Integer> driveByChannelIds) Setup GUI components for cross-view correspondence criterion.booleanshouldSplit(List<OctTreeSplitCriterion.SplitCorrespondence> correspondences) Evaluates whether to continue splitting based on pre-filtered correspondences.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.preibisch.mvrecon.process.splitting.OctTreeSplitCriterion
loadCorrespondences
-
Field Details
-
CRITERION_NAME
- See Also:
-
defaultMaxCorrespondences
public static int defaultMaxCorrespondences -
defaultLabelChoices
public static int[] defaultLabelChoices
-
-
Constructor Details
-
CrossViewCorrespondenceCriterion
public CrossViewCorrespondenceCriterion(SpimData2 spimData, Set<String> labels, int maxCorrespondences) Constructor.- Parameters:
spimData- The SpimData2 containing interest pointslabels- Set of interest point labels to considermaxCorrespondences- Threshold - regions with more unique detections should be split
-
-
Method Details
-
shouldSplit
Description copied from interface:OctTreeSplitCriterionEvaluates whether to continue splitting based on pre-filtered correspondences. The correspondences have already been filtered to only include those within the current interval.- Specified by:
shouldSplitin interfaceOctTreeSplitCriterion- 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
public double scoreSplit(List<OctTreeSplitCriterion.SplitCorrespondence> child1, List<OctTreeSplitCriterion.SplitCorrespondence> child2) Description copied from interface:OctTreeSplitCriterionScore a candidate binary split. Lower is better. Used as tiebreaker in chooseBestSplitDimension when multiple dimensions produce the same number of clean children.- Specified by:
scoreSplitin interfaceOctTreeSplitCriterion- Parameters:
child1- Correspondences in the first childchild2- Correspondences in the second child- Returns:
- Score (lower = better split). Default: 0 (no preference).
-
description
- Specified by:
descriptionin interfaceOctTreeSplitCriterion- Returns:
- A description of this criterion and its parameters for logging/display
-
getMaxCorrespondences
public int getMaxCorrespondences() -
getLabels
- Specified by:
getLabelsin interfaceOctTreeSplitCriterion- Returns:
- The set of interest point labels to consider for correspondences
-
getSpimData
- Specified by:
getSpimDatain interfaceOctTreeSplitCriterion- Returns:
- The SpimData2 used by this criterion (needed for accessing timepoints, views, etc.)
-
setupGUI
Setup GUI components for cross-view correspondence criterion.- Parameters:
gd- The GenericDialog to add components todata- The SpimData2- Returns:
- true if setup successful, false if no interest points available
-
setupGUI
public static boolean setupGUI(ij.gui.GenericDialog gd, SpimData2 data, Set<Integer> driveByChannelIds) Setup GUI components for cross-view correspondence criterion.- Parameters:
driveByChannelIds- if non-null, label availability counts are computed only over views of these driving channels (so labels that exist in every driving view are not flagged as "only available for X/Y Views" because of mirrored channels).
-
queryGUI
Query GUI components and create CrossViewCorrespondenceCriterion instance.- Parameters:
gd- The GenericDialog with user inputdata- The SpimData2- Returns:
- CrossViewCorrespondenceCriterion instance or null if configuration invalid
-
queryGUI
public static CrossViewCorrespondenceCriterion queryGUI(ij.gui.GenericDialog gd, SpimData2 data, Set<Integer> driveByChannelIds) Query GUI components and create CrossViewCorrespondenceCriterion instance.- Parameters:
driveByChannelIds- must match the value passed tosetupGUI(ij.gui.GenericDialog, net.preibisch.mvrecon.fiji.spimdata.SpimData2)so the label choices are parsed against the same (channel-restricted) view set.
-