Class BinaryMinMaxCurvatureFlowImageFilter

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

public class BinaryMinMaxCurvatureFlowImageFilter extends ImageFilter
Denoise a binary image using min/max curvature flow. BinaryMinMaxCurvatureFlowImageFilter implements a curvature driven image denoising algorithm. This filter assumes that the image is essentially binary: consisting of two classes. Iso-brightness contours in the 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}} = \\min(\\kappa,0) $ if $ \\mbox{Avg}_{\\mbox{stencil}}(x) $ is less than or equal to $ T_{threshold} $ and $ \\max(\\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 a user specified value which discriminates between the two pixel classes. This filter make use of the multi-threaded finite difference solver hierarchy. Updates are computed using a BinaryMinMaxCurvatureFlowFunction 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. Reference: "Level Set Methods and Fast Marching Methods", J.A. Sethian, Cambridge Press, Chapter 16, Second edition, 1999. See: BinaryMinMaxCurvatureFlowFunction CurvatureFlowImageFilter MinMaxCurvatureFlowImageFilter itk::simple::BinaryMinMaxCurvatureFlow for the procedural interface itk::BinaryMinMaxCurvatureFlowImageFilter for the Doxygen on the original ITK class. C++ includes: sitkBinaryMinMaxCurvatureFlowImageFilter.h
  • Constructor Details

    • BinaryMinMaxCurvatureFlowImageFilter

      protected BinaryMinMaxCurvatureFlowImageFilter(long cPtr, boolean cMemoryOwn)
    • BinaryMinMaxCurvatureFlowImageFilter

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

    • getCPtr

      protected static long getCPtr(BinaryMinMaxCurvatureFlowImageFilter obj)
    • swigRelease

      protected static long swigRelease(BinaryMinMaxCurvatureFlowImageFilter obj)
    • finalize

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

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

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

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

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

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

      public void setStencilRadius(int StencilRadius)
      Self& itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetStencilRadius(int StencilRadius)
    • getStencilRadius

      public int getStencilRadius()
      int itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetStencilRadius() const
    • setThreshold

      public void setThreshold(double Threshold)
      Self& itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetThreshold(double Threshold) Set/Get the threshold value.
    • getThreshold

      public double getThreshold()
      double itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetThreshold() const Set/Get the threshold value.
    • getName

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

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

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