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 image
U - 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

    Constructors
    Constructor
    Description
    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 Type
    Method
    Description
    void
    accept(net.imglib2.RandomAccessibleInterval<U> output)
     
    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.
    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.
    void
    compute(net.imglib2.RandomAccessibleInterval<T> input, net.imglib2.RandomAccessibleInterval<U> output)
     
    void
    run()
     
    net.imglib2.RandomAccessibleInterval<U>
    run(net.imglib2.RandomAccessibleInterval<U> output)
     

    Methods inherited from class net.imagej.ops.special.computer.AbstractUnaryComputerOp

    in, out, setInput, setOutput

    Methods inherited from class net.imagej.ops.AbstractOp

    ops, setEnvironment

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface java.util.function.Consumer

    andThen

    Methods inherited from interface net.imagej.ops.Environmental

    ops, setEnvironment

    Methods inherited from interface net.imagej.ops.Initializable

    initialize

    Methods inherited from interface net.imagej.ops.special.computer.UnaryComputerOp

    compute, getIndependentInstance, run

    Methods 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 analysis
      spacing - 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 analysis
      spacing - the pixel spacing in each dimension
      numThreads - the number of threads to use for computation
  • Method Details

    • run

      public void run()
      Specified by:
      run in interface net.imagej.ops.special.computer.NullaryComputerOp<T extends net.imglib2.type.numeric.RealType<T>>
      Specified by:
      run in interface net.imagej.ops.special.NullaryOp<T extends net.imglib2.type.numeric.RealType<T>>
      Specified by:
      run in interface Runnable
      Specified by:
      run in interface net.imagej.ops.special.computer.UnaryComputerOp<T extends net.imglib2.type.numeric.RealType<T>,U extends net.imglib2.type.numeric.RealType<U>>
      Specified by:
      run in interface net.imagej.ops.special.UnaryOp<T extends net.imglib2.type.numeric.RealType<T>,U extends net.imglib2.type.numeric.RealType<U>>
    • run

      public net.imglib2.RandomAccessibleInterval<U> run(net.imglib2.RandomAccessibleInterval<U> output)
      Specified by:
      run in interface net.imagej.ops.special.computer.NullaryComputerOp<T extends net.imglib2.type.numeric.RealType<T>>
      Specified by:
      run in interface net.imagej.ops.special.NullaryOp<T extends net.imglib2.type.numeric.RealType<T>>
    • accept

      public void accept(net.imglib2.RandomAccessibleInterval<U> output)
      Specified by:
      accept in interface Consumer<T extends net.imglib2.type.numeric.RealType<T>>
    • compute

      public void compute(net.imglib2.RandomAccessibleInterval<T> input, net.imglib2.RandomAccessibleInterval<U> output)
      Specified by:
      compute in interface net.imagej.ops.special.computer.UnaryComputerOp<T extends net.imglib2.type.numeric.RealType<T>,U extends net.imglib2.type.numeric.RealType<U>>
    • 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 axes
      scales - 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 axes
      scales - 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 axes
      scale - scale for analysis (in physical units)
      Returns:
      filtered ImgPlus with same axes as input