Package sc.fiji.snt.filter
Class Tubeness<T extends net.imglib2.type.numeric.RealType<T>,U extends net.imglib2.type.numeric.RealType<U>>
java.lang.Object
net.imagej.ops.AbstractOp
net.imagej.ops.special.AbstractUnaryOp<net.imglib2.RandomAccessibleInterval<T>,net.imglib2.RandomAccessibleInterval<U>>
net.imagej.ops.special.computer.AbstractUnaryComputerOp<net.imglib2.RandomAccessibleInterval<T>,net.imglib2.RandomAccessibleInterval<U>>
sc.fiji.snt.filter.Tubeness<T,U>
- Type Parameters:
T- the pixel type of the input imageU- the pixel type of the output image
- All Implemented Interfaces:
Runnable,Consumer<net.imglib2.RandomAccessibleInterval<U>>,net.imagej.ops.Environmental,net.imagej.ops.Initializable,net.imagej.ops.Op,net.imagej.ops.Ops.Filter.Tubeness,net.imagej.ops.special.computer.NullaryComputerOp<net.imglib2.RandomAccessibleInterval<U>>,net.imagej.ops.special.computer.UnaryComputerOp<net.imglib2.RandomAccessibleInterval<T>,,net.imglib2.RandomAccessibleInterval<U>> net.imagej.ops.special.NullaryOp<net.imglib2.RandomAccessibleInterval<U>>,net.imagej.ops.special.Output<net.imglib2.RandomAccessibleInterval<U>>,net.imagej.ops.special.OutputMutable<net.imglib2.RandomAccessibleInterval<U>>,net.imagej.ops.special.SpecialOp,net.imagej.ops.special.UnaryInput<net.imglib2.RandomAccessibleInterval<T>>,net.imagej.ops.special.UnaryOp<net.imglib2.RandomAccessibleInterval<T>,,net.imglib2.RandomAccessibleInterval<U>> net.imagej.ops.Threadable,org.scijava.command.Command,org.scijava.Initializable,org.scijava.plugin.SciJavaPlugin
public class Tubeness<T extends net.imglib2.type.numeric.RealType<T>,U extends net.imglib2.type.numeric.RealType<U>>
extends net.imagej.ops.special.computer.AbstractUnaryComputerOp<net.imglib2.RandomAccessibleInterval<T>,net.imglib2.RandomAccessibleInterval<U>>
implements net.imagej.ops.Ops.Filter.Tubeness, Consumer<net.imglib2.RandomAccessibleInterval<U>>
Computes a tubeness (vesselness) filter on a multi-dimensional image using multi-scale
eigenvalue analysis of the Hessian matrix. This is useful for enhancing and segmenting
curvilinear structures such as neurites and blood vessels.
Based on: Y. Sato, S. Nakajima, N. Shiraga, H. Atsumi, S. Yoshida, T. Koller, G. Gerig, and R. Kikinis, "Three-dimensional multi-scale line filter for segmentation and visualization of curvilinear structures in medical images," Med. Image Anal., vol. 2, no. 2, pp. 143–168, June 1998.
- Author:
- Cameron Arshadi
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.imagej.ops.special.SpecialOp
net.imagej.ops.special.SpecialOp.Flavor -
Field Summary
Fields inherited from interface net.imagej.ops.Ops.Filter.Tubeness
NAME -
Constructor Summary
ConstructorsConstructorDescriptionTubeness()Empty constructor required for proper loading by OpService.Tubeness(double[] scales, double[] spacing) Constructs a Tubeness filter with the specified scales and spacing.Tubeness(double[] scales, double[] spacing, int numThreads) Constructs a Tubeness filter with the specified scales, spacing, and number of threads. -
Method Summary
Modifier and TypeMethodDescriptionvoidstatic <T extends net.imglib2.type.numeric.RealType<T>>
net.imagej.ImgPlus<net.imglib2.type.numeric.real.DoubleType> apply(net.imagej.ImgPlus<T> img, double scale) Apply single-scale tubeness filter to an ImgPlus.static <T extends net.imglib2.type.numeric.RealType<T>>
net.imagej.ImgPlus<net.imglib2.type.numeric.real.DoubleType> apply(net.imagej.ImgPlus<T> img, double[] scales) Apply multiscale tubeness filter to an ImgPlus.static <T extends net.imglib2.type.numeric.RealType<T>>
net.imagej.ImgPlus<net.imglib2.type.numeric.real.DoubleType> apply(net.imagej.ImgPlus<T> img, double[] scales, int numThreads) Apply multiscale tubeness filter to an ImgPlus.voidcompute(net.imglib2.RandomAccessibleInterval<T> input, net.imglib2.RandomAccessibleInterval<U> output) voidrun()net.imglib2.RandomAccessibleInterval<U> Methods inherited from class net.imagej.ops.special.computer.AbstractUnaryComputerOp
in, out, setInput, setOutputMethods inherited from class net.imagej.ops.AbstractOp
ops, setEnvironmentMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.imagej.ops.Environmental
ops, setEnvironmentMethods inherited from interface net.imagej.ops.Initializable
initializeMethods inherited from interface net.imagej.ops.special.computer.UnaryComputerOp
compute, getIndependentInstance, runMethods inherited from interface net.imagej.ops.special.UnaryOp
getArity
-
Constructor Details
-
Tubeness
public Tubeness()Empty constructor required for proper loading by OpService. Should not be called directly. -
Tubeness
public Tubeness(double[] scales, double[] spacing) Constructs a Tubeness filter with the specified scales and spacing. Uses the default number of threads (available processors).- Parameters:
scales- the scales for multi-scale analysisspacing- the pixel spacing in each dimension
-
Tubeness
public Tubeness(double[] scales, double[] spacing, int numThreads) Constructs a Tubeness filter with the specified scales, spacing, and number of threads.- Parameters:
scales- the scales for multi-scale analysisspacing- the pixel spacing in each dimensionnumThreads- the number of threads to use for computation
-
-
Method Details
-
run
public void run()- Specified by:
runin interfacenet.imagej.ops.special.computer.NullaryComputerOp<T extends net.imglib2.type.numeric.RealType<T>>- Specified by:
runin interfacenet.imagej.ops.special.NullaryOp<T extends net.imglib2.type.numeric.RealType<T>>- Specified by:
runin interfaceRunnable- Specified by:
runin interfacenet.imagej.ops.special.computer.UnaryComputerOp<T extends net.imglib2.type.numeric.RealType<T>,U extends net.imglib2.type.numeric.RealType<U>> - Specified by:
runin interfacenet.imagej.ops.special.UnaryOp<T extends net.imglib2.type.numeric.RealType<T>,U extends net.imglib2.type.numeric.RealType<U>>
-
run
-
accept
-
compute
-
apply
public static <T extends net.imglib2.type.numeric.RealType<T>> net.imagej.ImgPlus<net.imglib2.type.numeric.real.DoubleType> apply(net.imagej.ImgPlus<T> img, double[] scales) Apply multiscale tubeness filter to an ImgPlus.Spacing is extracted from axis metadata.
- Type Parameters:
T- input pixel type- Parameters:
img- input image (2D or 3D) with calibrated axesscales- scales for multiscale analysis (in physical units)- Returns:
- filtered ImgPlus with same axes as input
-
apply
public static <T extends net.imglib2.type.numeric.RealType<T>> net.imagej.ImgPlus<net.imglib2.type.numeric.real.DoubleType> apply(net.imagej.ImgPlus<T> img, double[] scales, int numThreads) Apply multiscale tubeness filter to an ImgPlus.- Type Parameters:
T- input pixel type- Parameters:
img- input image (2D or 3D) with calibrated axesscales- scales for multiscale analysis (in physical units)numThreads- number of threads to use- Returns:
- filtered ImgPlus with same axes as input
-
apply
public static <T extends net.imglib2.type.numeric.RealType<T>> net.imagej.ImgPlus<net.imglib2.type.numeric.real.DoubleType> apply(net.imagej.ImgPlus<T> img, double scale) Apply single-scale tubeness filter to an ImgPlus.- Type Parameters:
T- input pixel type- Parameters:
img- input image (2D or 3D) with calibrated axesscale- scale for analysis (in physical units)- Returns:
- filtered ImgPlus with same axes as input
-