Class ObjectnessMeasureImageFilter

java.lang.Object
org.itk.simple.ProcessObject
org.itk.simple.ImageFilter
org.itk.simple.ObjectnessMeasureImageFilter

public class ObjectnessMeasureImageFilter extends ImageFilter
Enhance M-dimensional objects in N-dimensional images. This filter is a generalization of Frangi's vesselness measurement for detecting M-dimensional object in N-dimensional space. For example a vessel is a 1-D object in 3-D space. The filter can enhance blob-like structures (M=0), vessel-like structures (M=1), 2D plate-like structures (M=2), hyper-plate-like structures (M=3) in N-dimensional images, with M<N. This filter takes a scalar image as input and produces a real valued image as output which contains the objectness measure at each pixel. Internally, it computes a Hessian via discrete central differences. Before applying this filter it is expected that a Gaussian smoothing filter at an appropriate scale (sigma) was applied to the input image. The enhancement is based on the eigenvalues of the Hessian matrix. For the Frangi's vesselness case were M=1 and N=3 we have the 3 eigenvalues such that $ | \\lambda_1 | < | \\lambda_2 | < |\\lambda_3 | $ . The formula follows: \\[ R_A = \\frac{|\\lambda_2|}{|\\lambda_3|}, \\; R_B = \\frac{|\\lambda_2|}{|\\lambda_2\\lambda_3|}, \\; S = \\sqrt{\\lambda_1^2+\\lambda_2^2+\\lambda_3^2} \\] \\[ V_{\\sigma}= \\begin{cases} (1-e^{-\\frac{R_A^2}{2\\alpha^2}}) \\cdot e^{\\frac{R_B^2}{2\\beta^2}} \\cdot (1-e^{-\\frac{S^2}{2\\gamma^2}}) & \\text{if } \\lambda_2<0 \\text{ and } \\lambda_3<0 \\text{,}\\\\ 0 & \\text{otherwise} \\end{cases} \\] References Antiga, L. Generalizing vesselness with respect to dimensionality and shape. https://hdl.handle.net/1926/576 Frangi, AF, Niessen, WJ, Vincken, KL, & Viergever, MA (1998). Multiscale Vessel Enhancement Filtering. In Wells, WM, Colchester, A, & Delp, S, Editors, MICCAI '98 Medical Image Computing and Computer-Assisted Intervention, Lecture Notes in Computer Science, pages 130-137, Springer Verlag, 1998. See: itk::HessianToObjectnessMeasureImageFilter itk::simple::ObjectnessMeasure for the procedural interface itk::ObjectnessMeasureImageFilter for the Doxygen on the original ITK class. C++ includes: sitkObjectnessMeasureImageFilter.h
  • Constructor Details

    • ObjectnessMeasureImageFilter

      protected ObjectnessMeasureImageFilter(long cPtr, boolean cMemoryOwn)
    • ObjectnessMeasureImageFilter

      public ObjectnessMeasureImageFilter()
      itk::simple::ObjectnessMeasureImageFilter::ObjectnessMeasureImageFilter() Default Constructor that takes no arguments and initializes default parameters
  • Method Details

    • getCPtr

      protected static long getCPtr(ObjectnessMeasureImageFilter obj)
    • swigRelease

      protected static long swigRelease(ObjectnessMeasureImageFilter obj)
    • finalize

      protected void finalize()
      Overrides:
      finalize in class ImageFilter
    • delete

      public void delete()
      virtual itk::simple::ObjectnessMeasureImageFilter::~ObjectnessMeasureImageFilter() Destructor
      Overrides:
      delete in class ImageFilter
    • setAlpha

      public void setAlpha(double Alpha)
      Self& itk::simple::ObjectnessMeasureImageFilter::SetAlpha(double Alpha) Set/Get Alpha, the weight corresponding to R_A (the ratio of the smallest eigenvalue that has to be large to the larger ones). Smaller values lead to increased sensitivity to the object dimensionality.
    • getAlpha

      public double getAlpha()
      double itk::simple::ObjectnessMeasureImageFilter::GetAlpha() const Set/Get Alpha, the weight corresponding to R_A (the ratio of the smallest eigenvalue that has to be large to the larger ones). Smaller values lead to increased sensitivity to the object dimensionality.
    • setBeta

      public void setBeta(double Beta)
      Self& itk::simple::ObjectnessMeasureImageFilter::SetBeta(double Beta) Set/Get Beta, the weight corresponding to R_B (the ratio of the largest eigenvalue that has to be small to the larger ones). Smaller values lead to increased sensitivity to the object dimensionality.
    • getBeta

      public double getBeta()
      double itk::simple::ObjectnessMeasureImageFilter::GetBeta() const Set/Get Beta, the weight corresponding to R_B (the ratio of the largest eigenvalue that has to be small to the larger ones). Smaller values lead to increased sensitivity to the object dimensionality.
    • setGamma

      public void setGamma(double Gamma)
      Self& itk::simple::ObjectnessMeasureImageFilter::SetGamma(double Gamma) Set/Get Gamma, the weight corresponding to S (the Frobenius norm of the Hessian matrix, or second-order structureness)
    • getGamma

      public double getGamma()
      double itk::simple::ObjectnessMeasureImageFilter::GetGamma() const Set/Get Gamma, the weight corresponding to S (the Frobenius norm of the Hessian matrix, or second-order structureness)
    • setScaleObjectnessMeasure

      public void setScaleObjectnessMeasure(boolean ScaleObjectnessMeasure)
      Self& itk::simple::ObjectnessMeasureImageFilter::SetScaleObjectnessMeasure(bool ScaleObjectnessMeasure) Toggle scaling the objectness measure with the magnitude of the largest absolute eigenvalue
    • scaleObjectnessMeasureOn

      public void scaleObjectnessMeasureOn()
      Self& itk::simple::ObjectnessMeasureImageFilter::ScaleObjectnessMeasureOn() Set the value of ScaleObjectnessMeasure to true or false respectfully.
    • scaleObjectnessMeasureOff

      public void scaleObjectnessMeasureOff()
      Self& itk::simple::ObjectnessMeasureImageFilter::ScaleObjectnessMeasureOff()
    • getScaleObjectnessMeasure

      public boolean getScaleObjectnessMeasure()
      bool itk::simple::ObjectnessMeasureImageFilter::GetScaleObjectnessMeasure() const Toggle scaling the objectness measure with the magnitude of the largest absolute eigenvalue
    • setObjectDimension

      public void setObjectDimension(long ObjectDimension)
      Self& itk::simple::ObjectnessMeasureImageFilter::SetObjectDimension(unsigned int ObjectDimension) Set/Get the dimensionality of the object (0: points (blobs), 1: lines (vessels), 2: planes (plate-like structures), 3: hyper-planes. ObjectDimension must be smaller than ImageDimension.
    • getObjectDimension

      public long getObjectDimension()
      unsigned int itk::simple::ObjectnessMeasureImageFilter::GetObjectDimension() const Set/Get the dimensionality of the object (0: points (blobs), 1: lines (vessels), 2: planes (plate-like structures), 3: hyper-planes. ObjectDimension must be smaller than ImageDimension.
    • setBrightObject

      public void setBrightObject(boolean BrightObject)
      Self& itk::simple::ObjectnessMeasureImageFilter::SetBrightObject(bool BrightObject) Enhance bright structures on a dark background if true, the opposite if false.
    • brightObjectOn

      public void brightObjectOn()
      Self& itk::simple::ObjectnessMeasureImageFilter::BrightObjectOn() Set the value of BrightObject to true or false respectfully.
    • brightObjectOff

      public void brightObjectOff()
      Self& itk::simple::ObjectnessMeasureImageFilter::BrightObjectOff()
    • getBrightObject

      public boolean getBrightObject()
      bool itk::simple::ObjectnessMeasureImageFilter::GetBrightObject() const Enhance bright structures on a dark background if true, the opposite if false.
    • getName

      public String getName()
      std::string itk::simple::ObjectnessMeasureImageFilter::GetName() const Name of this class
      Overrides:
      getName in class ProcessObject
    • toString

      public String toString()
      std::string itk::simple::ObjectnessMeasureImageFilter::ToString() const Print ourselves out
      Overrides:
      toString in class ProcessObject
    • execute

      public Image execute(Image image1)
      Image itk::simple::ObjectnessMeasureImageFilter::Execute(const Image &image1) Execute the filter on the input image