Package sc.fiji.snt.util
Class BundleDetector
java.lang.Object
sc.fiji.snt.util.BundleDetector
Detects regions where two paths run parallel to each other for a sustained distance, complementary
to
CrossoverFinder (which catches brief perpendicular near-crossings). Common use case: identifying
axons bundled along the same nerve, or a path that was inadvertently hijacked by signal from a neighboring
neurite running side-by-side.
This is a thin wrapper over CrossoverFinder: it reuses the entire grid/proximity/run-extraction
pipeline and only inverts the angle filter. Where CrossoverFinder (with thetaMinDeg > 0)
keeps only high-angle approaches (X-shaped crossings), BundleDetector uses
thetaMaxDeg > 0 to keep only low-angle approaches (||-shaped sustained proximity). Defaults
are also tuned for sustained runs: higher minRunNodes, similar proximity.
The output type is CrossoverFinder.CrossoverEvent: Callers should interpret the events as "bundled run"
regions rather than crossings; the medianAngleDeg field will be small (parallel), and the index-window
span will be wide (sustained).
- Author:
- Tiago Ferreira
- See Also:
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionstatic List<CrossoverFinder.CrossoverEvent> find(Collection<Path> paths, BundleDetector.Config cfg) Entry point: detect bundle events for a collection of paths using the given config.
-
Method Details
-
find
public static List<CrossoverFinder.CrossoverEvent> find(Collection<Path> paths, BundleDetector.Config cfg) Entry point: detect bundle events for a collection of paths using the given config. Internally constructs aCrossoverFinder.Configith the inverted angle filter (CrossoverFinder.Config.thetaMaxDegset,CrossoverFinder.Config.thetaMinDegdisabled) and delegates toCrossoverFinder.find(java.util.Collection<sc.fiji.snt.Path>, sc.fiji.snt.util.CrossoverFinder.Config).- Parameters:
paths- the collection of pathscfg- the bundle-detection config settings- Returns:
- list of detected bundle events (typed as
CrossoverFinder.CrossoverEvent)
-