Class ViewNeighbors
java.lang.Object
net.preibisch.mvrecon.process.interestpointregistration.ViewNeighbors
Reusable per-view neighbour queries:
connectedViews(SpimData2, Collection, Map)— interest-point correspondence neighboursoverlappingViews(SpimData2, Collection)— geometric (bounding-box) neighbours
universe set passed in (typically the views the
caller is already analysing). "Connected" follows the same same-label / canonical-pair
semantics as AnalyzeErrorsUtil.getErrors but skips transforms and distance — it's
just the connection graph.-
Method Summary
Modifier and TypeMethodDescriptionstatic Set<mpicbg.spim.data.sequence.ViewId> connectedFor(SpimData2 data, Collection<? extends mpicbg.spim.data.sequence.ViewId> actual, Collection<? extends mpicbg.spim.data.sequence.ViewId> universe, Map<String, Double> labelAndWeights) Per-click connectivity query.static Set<mpicbg.spim.data.sequence.ViewId> connectedTo(mpicbg.spim.data.sequence.ViewId v, SpimData2 data, Collection<? extends mpicbg.spim.data.sequence.ViewId> universe, Map<String, Double> labelAndWeights) Convenience: connected set for a single view (returns empty set ifvnot in universe).connectedViews(SpimData2 data, Collection<? extends mpicbg.spim.data.sequence.ViewId> universe, Map<String, Double> labelAndWeights) For each view inuniverse, return the set of other views inuniversethat share at least one same-label correspondence with it.static Set<mpicbg.spim.data.sequence.ViewId> overlappingFor(SpimData2 data, Collection<? extends mpicbg.spim.data.sequence.ViewId> actual, Collection<? extends mpicbg.spim.data.sequence.ViewId> universe) Per-click overlap query.overlappingViews(SpimData2 data, Collection<? extends mpicbg.spim.data.sequence.ViewId> universe) For each view inuniverse, return the set of other views inuniversewhose registered bounding-box overlaps it.static Set<mpicbg.spim.data.sequence.ViewId> overlappingWith(mpicbg.spim.data.sequence.ViewId v, SpimData2 data, Collection<? extends mpicbg.spim.data.sequence.ViewId> universe) Convenience: overlap set for a single view.
-
Method Details
-
connectedViews
public static Map<mpicbg.spim.data.sequence.ViewId,Set<mpicbg.spim.data.sequence.ViewId>> connectedViews(SpimData2 data, Collection<? extends mpicbg.spim.data.sequence.ViewId> universe, Map<String, Double> labelAndWeights) For each view inuniverse, return the set of other views inuniversethat share at least one same-label correspondence with it. Symmetric. -
connectedTo
public static Set<mpicbg.spim.data.sequence.ViewId> connectedTo(mpicbg.spim.data.sequence.ViewId v, SpimData2 data, Collection<? extends mpicbg.spim.data.sequence.ViewId> universe, Map<String, Double> labelAndWeights) Convenience: connected set for a single view (returns empty set ifvnot in universe). -
connectedFor
public static Set<mpicbg.spim.data.sequence.ViewId> connectedFor(SpimData2 data, Collection<? extends mpicbg.spim.data.sequence.ViewId> actual, Collection<? extends mpicbg.spim.data.sequence.ViewId> universe, Map<String, Double> labelAndWeights) Per-click connectivity query. Returns the views inuniverse \ actualthat share at least one same-label correspondence with any view inactual. Walks only theactualset's correspondence lists — much cheaper thanconnectedViews(SpimData2, Collection, Map)which materialises the full universe-by-universe graph. Weight values inlabelAndWeightsare ignored (connectedness is binary); only the key set matters. -
overlappingViews
public static Map<mpicbg.spim.data.sequence.ViewId,Set<mpicbg.spim.data.sequence.ViewId>> overlappingViews(SpimData2 data, Collection<? extends mpicbg.spim.data.sequence.ViewId> universe) For each view inuniverse, return the set of other views inuniversewhose registered bounding-box overlaps it. Symmetric. -
overlappingWith
public static Set<mpicbg.spim.data.sequence.ViewId> overlappingWith(mpicbg.spim.data.sequence.ViewId v, SpimData2 data, Collection<? extends mpicbg.spim.data.sequence.ViewId> universe) Convenience: overlap set for a single view. -
overlappingFor
public static Set<mpicbg.spim.data.sequence.ViewId> overlappingFor(SpimData2 data, Collection<? extends mpicbg.spim.data.sequence.ViewId> actual, Collection<? extends mpicbg.spim.data.sequence.ViewId> universe) Per-click overlap query. Returns the views inuniverse \ actualwhose affine-transformed body intersects any view inactual. Two-stage pipeline:- AABB broad phase — one union AABB over
actual, then a parallel scan overuniversereusingSimpleBoundingBoxOverlap.overlaps(V, V)to prune. - SAT narrow phase — for each AABB-positive candidate, check 3-D SAT against
each view in
actual; first hit wins.
overlappingViews(SpimData2, Collection)performs. Suitable for interactive use over universes with hundreds of thousands of views. - AABB broad phase — one union AABB over
-