Class Frangi<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.Frangi<T,U>
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.FrangiVesselness, 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 Frangi<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.FrangiVesselness, Consumer<net.imglib2.RandomAccessibleInterval<U>>
A.F. Frangi, W.J. Niessen, K.L. Vincken, M.A. Viergever (1998). Multiscale vessel enhancement filtering. In Medical Image Computing and Computer-Assisted Intervention - MICCAI'98, W.M. Wells, A. Colchester and S.L. Delp (Eds.), Lecture Notes in Computer Science, vol. 1496 - Springer Verlag, Berlin, Germany, pp. 130-137.
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.FrangiVesselness

    NAME
  • Constructor Summary

    Constructors
    Constructor
    Description
    Frangi(double[] scales, double[] spacing, double stackMax)
    Constructs a Frangi filter with the specified scales, spacing, and stack maximum.
    Frangi(double[] scales, double[] spacing, double stackMax, int numThreads)
    Constructs a Frangi filter with the specified scales, spacing, stack maximum, 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[] scales)
    Apply multiscale Frangi vesselness 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, double stackMax, int numThreads)
    Apply multiscale Frangi vesselness 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

    • Frangi

      public Frangi(double[] scales, double[] spacing, double stackMax)
      Constructs a Frangi filter with the specified scales, spacing, and stack maximum. Uses the default number of threads (available processors).
      Parameters:
      scales - the scales for multi-scale analysis
      spacing - the pixel spacing in each dimension
      stackMax - the maximum value in the image stack for normalization
    • Frangi

      public Frangi(double[] scales, double[] spacing, double stackMax, int numThreads)
      Constructs a Frangi filter with the specified scales, spacing, stack maximum, and number of threads.
      Parameters:
      scales - the scales for multi-scale analysis
      spacing - the pixel spacing in each dimension
      stackMax - the maximum value in the image stack for normalization
      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 Frangi vesselness filter to an ImgPlus.

      Spacing is extracted from axis metadata. Stack maximum is computed from the image.

      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, double stackMax, int numThreads)
      Apply multiscale Frangi vesselness 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)
      stackMax - maximum value for normalization, or -1 to auto-compute
      numThreads - number of threads to use
      Returns:
      filtered ImgPlus with same axes as input