Class BinaryMinMaxCurvatureFlowImageFilter
java.lang.Object
org.itk.simple.ProcessObject
org.itk.simple.ImageFilter
org.itk.simple.BinaryMinMaxCurvatureFlowImageFilter
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
- 
Field SummaryFields inherited from class org.itk.simple.ProcessObjectswigCMemOwn
- 
Constructor SummaryConstructorsModifierConstructorDescriptionitk::simple::BinaryMinMaxCurvatureFlowImageFilter::BinaryMinMaxCurvatureFlowImageFilter() Default Constructor that takes no arguments and initializes default parametersprotectedBinaryMinMaxCurvatureFlowImageFilter(long cPtr, boolean cMemoryOwn) 
- 
Method SummaryModifier and TypeMethodDescriptionvoiddelete()virtual itk::simple::BinaryMinMaxCurvatureFlowImageFilter::~BinaryMinMaxCurvatureFlowImageFilter() DestructorImage itk::simple::BinaryMinMaxCurvatureFlowImageFilter::Execute(Image &&image1) Execute the filter on the input imageprotected voidfinalize()protected static longgetName()std::string itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetName() const Name of this classlonguint32_t itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetNumberOfIterations() constintint itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetStencilRadius() constdoubledouble itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetThreshold() const Set/Get the threshold value.doubledouble itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetTimeStep() constvoidsetNumberOfIterations(long NumberOfIterations) Self& itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)voidsetStencilRadius(int StencilRadius) Self& itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetStencilRadius(int StencilRadius)voidsetThreshold(double Threshold) Self& itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetThreshold(double Threshold) Set/Get the threshold value.voidsetTimeStep(double TimeStep) Self& itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetTimeStep(double TimeStep)protected static longtoString()std::string itk::simple::BinaryMinMaxCurvatureFlowImageFilter::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- 
BinaryMinMaxCurvatureFlowImageFilterprotected BinaryMinMaxCurvatureFlowImageFilter(long cPtr, boolean cMemoryOwn) 
- 
BinaryMinMaxCurvatureFlowImageFilterpublic BinaryMinMaxCurvatureFlowImageFilter()itk::simple::BinaryMinMaxCurvatureFlowImageFilter::BinaryMinMaxCurvatureFlowImageFilter() 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::BinaryMinMaxCurvatureFlowImageFilter::~BinaryMinMaxCurvatureFlowImageFilter() Destructor- Overrides:
- deletein class- ImageFilter
 
- 
setTimeSteppublic void setTimeStep(double TimeStep) Self& itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetTimeStep(double TimeStep)
- 
getTimeSteppublic double getTimeStep()double itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetTimeStep() const
- 
setNumberOfIterationspublic void setNumberOfIterations(long NumberOfIterations) Self& itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetNumberOfIterations(uint32_t NumberOfIterations)
- 
getNumberOfIterationspublic long getNumberOfIterations()uint32_t itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetNumberOfIterations() const
- 
setStencilRadiuspublic void setStencilRadius(int StencilRadius) Self& itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetStencilRadius(int StencilRadius)
- 
getStencilRadiuspublic int getStencilRadius()int itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetStencilRadius() const
- 
setThresholdpublic void setThreshold(double Threshold) Self& itk::simple::BinaryMinMaxCurvatureFlowImageFilter::SetThreshold(double Threshold) Set/Get the threshold value.
- 
getThresholdpublic double getThreshold()double itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetThreshold() const Set/Get the threshold value.
- 
getNamestd::string itk::simple::BinaryMinMaxCurvatureFlowImageFilter::GetName() const Name of this class- Overrides:
- getNamein class- ProcessObject
 
- 
toStringstd::string itk::simple::BinaryMinMaxCurvatureFlowImageFilter::ToString() const Print ourselves out- Overrides:
- toStringin class- ProcessObject
 
- 
execute
 
-