Class MinMaxCurvatureFlowImageFilter
java.lang.Object
org.itk.simple.ProcessObject
org.itk.simple.ImageFilter
org.itk.simple.MinMaxCurvatureFlowImageFilter
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
- 
Field SummaryFields inherited from class org.itk.simple.ProcessObjectswigCMemOwn
- 
Constructor SummaryConstructorsModifierConstructorDescriptionitk::simple::MinMaxCurvatureFlowImageFilter::MinMaxCurvatureFlowImageFilter() Default Constructor that takes no arguments and initializes default parametersprotectedMinMaxCurvatureFlowImageFilter(long cPtr, boolean cMemoryOwn) 
- 
Method SummaryModifier and TypeMethodDescriptionvoiddelete()virtual itk::simple::MinMaxCurvatureFlowImageFilter::~MinMaxCurvatureFlowImageFilter() DestructorImage itk::simple::MinMaxCurvatureFlowImageFilter::Execute(Image &&image1) Execute the filter on the input imageprotected voidfinalize()protected static longgetName()std::string itk::simple::MinMaxCurvatureFlowImageFilter::GetName() const Name of this classlonguint32_t itk::simple::MinMaxCurvatureFlowImageFilter::GetNumberOfIterations() constintint itk::simple::MinMaxCurvatureFlowImageFilter::GetStencilRadius() const Set/Get the stencil radius.doubledouble itk::simple::MinMaxCurvatureFlowImageFilter::GetTimeStep() constvoidsetNumberOfIterations(long NumberOfIterations) Self& itk::simple::MinMaxCurvatureFlowImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)voidsetStencilRadius(int StencilRadius) Self& itk::simple::MinMaxCurvatureFlowImageFilter::SetStencilRadius(int StencilRadius) Set/Get the stencil radius.voidsetTimeStep(double TimeStep) Self& itk::simple::MinMaxCurvatureFlowImageFilter::SetTimeStep(double TimeStep)protected static longtoString()std::string itk::simple::MinMaxCurvatureFlowImageFilter::ToString() const Print ourselves outMethods inherited from class org.itk.simple.ImageFiltergetCPtr, swigReleaseMethods inherited from class org.itk.simple.ProcessObjectabort, addCommand, debugOff, debugOn, getCPtr, getDebug, getGlobalDefaultCoordinateTolerance, getGlobalDefaultDebug, getGlobalDefaultDirectionTolerance, getGlobalDefaultNumberOfThreads, getGlobalDefaultThreader, getGlobalWarningDisplay, getNumberOfThreads, getNumberOfWorkUnits, getProgress, globalDefaultDebugOff, globalDefaultDebugOn, globalWarningDisplayOff, globalWarningDisplayOn, hasCommand, removeAllCommands, setDebug, setGlobalDefaultCoordinateTolerance, setGlobalDefaultDebug, setGlobalDefaultDirectionTolerance, setGlobalDefaultNumberOfThreads, setGlobalDefaultThreader, setGlobalWarningDisplay, setNumberOfThreads, setNumberOfWorkUnits, swigRelease
- 
Constructor Details- 
MinMaxCurvatureFlowImageFilterprotected MinMaxCurvatureFlowImageFilter(long cPtr, boolean cMemoryOwn) 
- 
MinMaxCurvatureFlowImageFilterpublic MinMaxCurvatureFlowImageFilter()itk::simple::MinMaxCurvatureFlowImageFilter::MinMaxCurvatureFlowImageFilter() Default Constructor that takes no arguments and initializes default parameters
 
- 
- 
Method Details- 
getCPtr
- 
swigRelease
- 
finalizeprotected void finalize()- Overrides:
- finalizein class- ImageFilter
 
- 
deletepublic void delete()virtual itk::simple::MinMaxCurvatureFlowImageFilter::~MinMaxCurvatureFlowImageFilter() Destructor- Overrides:
- deletein class- ImageFilter
 
- 
setTimeSteppublic void setTimeStep(double TimeStep) Self& itk::simple::MinMaxCurvatureFlowImageFilter::SetTimeStep(double TimeStep)
- 
getTimeSteppublic double getTimeStep()double itk::simple::MinMaxCurvatureFlowImageFilter::GetTimeStep() const
- 
setNumberOfIterationspublic void setNumberOfIterations(long NumberOfIterations) Self& itk::simple::MinMaxCurvatureFlowImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
- 
getNumberOfIterationspublic long getNumberOfIterations()uint32_t itk::simple::MinMaxCurvatureFlowImageFilter::GetNumberOfIterations() const
- 
setStencilRadiuspublic void setStencilRadius(int StencilRadius) Self& itk::simple::MinMaxCurvatureFlowImageFilter::SetStencilRadius(int StencilRadius) Set/Get the stencil radius.
- 
getStencilRadiuspublic int getStencilRadius()int itk::simple::MinMaxCurvatureFlowImageFilter::GetStencilRadius() const Set/Get the stencil radius.
- 
getNamestd::string itk::simple::MinMaxCurvatureFlowImageFilter::GetName() const Name of this class- Overrides:
- getNamein class- ProcessObject
 
- 
toStringstd::string itk::simple::MinMaxCurvatureFlowImageFilter::ToString() const Print ourselves out- Overrides:
- toStringin class- ProcessObject
 
- 
execute
 
-