Class MinMaxCurvatureFlowImageFilter

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

public class MinMaxCurvatureFlowImageFilter extends ImageFilter
Denoise an image using min/max curvature flow. MinMaxCurvatureFlowImageFilter implements a curvature driven image denoising algorithm. Iso- brightness contours in the grayscale input image are viewed as a level set. The level set is then evolved using a curvature-based speed function: \\[ I_t = F_{\\mbox{minmax}} |\\nabla I| \\] where $ F_{\\mbox{minmax}} = \\max(\\kappa,0) $ if $ \\mbox{Avg}_{\\mbox{stencil}}(x) $ is less than or equal to $ T_{threshold} $ and $ \\min(\\kappa,0) $ , otherwise. $ \\kappa $ is the mean curvature of the iso-brightness contour at point $ x $ . In min/max curvature flow, movement is turned on or off depending on the scale of the noise one wants to remove. Switching depends on the average image value of a region of radius $ R $ around each point. The choice of $ R $ , the stencil radius, governs the scale of the noise to be removed. The threshold value $ T_{threshold} $ is the average intensity obtained in the direction perpendicular to the gradient at point $ x $ at the extrema of the local neighborhood. This filter make use of the multi-threaded finite difference solver hierarchy. Updates are computed using a MinMaxCurvatureFlowFunction object. A zero flux Neumann boundary condition is used when computing derivatives near the data boundary. WARNING: This filter assumes that the input and output types have the same dimensions. This filter also requires that the output image pixels are of a real type. This filter works for any dimensional images, however for dimensions greater than 3D, an expensive brute-force search is used to compute the local threshold. Reference: "Level Set Methods and Fast Marching Methods", J.A. Sethian, Cambridge Press, Chapter 16, Second edition, 1999. See: MinMaxCurvatureFlowFunction CurvatureFlowImageFilter BinaryMinMaxCurvatureFlowImageFilter itk::simple::MinMaxCurvatureFlow for the procedural interface itk::MinMaxCurvatureFlowImageFilter for the Doxygen on the original ITK class. C++ includes: sitkMinMaxCurvatureFlowImageFilter.h
  • Constructor Details

    • MinMaxCurvatureFlowImageFilter

      protected MinMaxCurvatureFlowImageFilter(long cPtr, boolean cMemoryOwn)
    • MinMaxCurvatureFlowImageFilter

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

    • getCPtr

      protected static long getCPtr(MinMaxCurvatureFlowImageFilter obj)
    • swigRelease

      protected static long swigRelease(MinMaxCurvatureFlowImageFilter obj)
    • finalize

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

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

      public void setTimeStep(double TimeStep)
      Self& itk::simple::MinMaxCurvatureFlowImageFilter::SetTimeStep(double TimeStep)
    • getTimeStep

      public double getTimeStep()
      double itk::simple::MinMaxCurvatureFlowImageFilter::GetTimeStep() const
    • setNumberOfIterations

      public void setNumberOfIterations(long NumberOfIterations)
      Self& itk::simple::MinMaxCurvatureFlowImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
    • getNumberOfIterations

      public long getNumberOfIterations()
      uint32_t itk::simple::MinMaxCurvatureFlowImageFilter::GetNumberOfIterations() const
    • setStencilRadius

      public void setStencilRadius(int StencilRadius)
      Self& itk::simple::MinMaxCurvatureFlowImageFilter::SetStencilRadius(int StencilRadius) Set/Get the stencil radius.
    • getStencilRadius

      public int getStencilRadius()
      int itk::simple::MinMaxCurvatureFlowImageFilter::GetStencilRadius() const Set/Get the stencil radius.
    • getName

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

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

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