SimpleITK
1.2.4
|
Denoise a binary image using min/max curvature flow. More...
#include <sitkBinaryMinMaxCurvatureFlowImageFilter.h>
Public Types | |
typedef RealPixelIDTypeList | PixelIDTypeList |
typedef BinaryMinMaxCurvatureFlowImageFilter | Self |
Public Types inherited from itk::simple::ImageFilter< 1 > | |
typedef ImageFilter | Self |
Public Types inherited from itk::simple::ProcessObject | |
typedef ProcessObject | Self |
Public Member Functions | |
BinaryMinMaxCurvatureFlowImageFilter () | |
Image | Execute (const Image &image1) |
Image | Execute (const Image &image1, double timeStep, uint32_t numberOfIterations, int stencilRadius, double threshold) |
std::string | GetName () const |
uint32_t | GetNumberOfIterations () const |
int | GetStencilRadius () const |
double | GetThreshold () const |
double | GetTimeStep () const |
Self & | SetNumberOfIterations (uint32_t NumberOfIterations) |
Self & | SetStencilRadius (int StencilRadius) |
Self & | SetThreshold (double Threshold) |
Self & | SetTimeStep (double TimeStep) |
std::string | ToString () const |
virtual | ~BinaryMinMaxCurvatureFlowImageFilter () |
Public Member Functions inherited from itk::simple::ImageFilter< 1 > | |
ImageFilter () | |
virtual | ~ImageFilter ()=0 |
Public Member Functions inherited from itk::simple::ProcessObject | |
virtual void | Abort () |
virtual int | AddCommand (itk::simple::EventEnum event, itk::simple::Command &cmd) |
Add a Command Object to observer the event. More... | |
virtual float | GetProgress () const |
An Active Measurement of the progress of execution. More... | |
virtual bool | HasCommand (itk::simple::EventEnum event) const |
Query of this object has any registered commands for event. More... | |
ProcessObject () | |
virtual void | RemoveAllCommands () |
Remove all registered commands. More... | |
virtual | ~ProcessObject () |
virtual void | DebugOn () |
virtual void | DebugOff () |
virtual bool | GetDebug () const |
virtual void | SetDebug (bool debugFlag) |
virtual void | SetNumberOfThreads (unsigned int n) |
virtual unsigned int | GetNumberOfThreads () const |
Private Types | |
typedef Image(Self::* | MemberFunctionType) (const Image &image1) |
Private Member Functions | |
template<class TImageType > | |
Image | ExecuteInternal (const Image &image1) |
Private Attributes | |
nsstd::auto_ptr< detail::MemberFunctionFactory< MemberFunctionType > > | m_MemberFactory |
uint32_t | m_NumberOfIterations |
int | m_StencilRadius |
double | m_Threshold |
double | m_TimeStep |
Friends | |
struct | detail::MemberFunctionAddressor< MemberFunctionType > |
Additional Inherited Members | |
Static Public Member Functions inherited from itk::simple::ProcessObject | |
static bool | GetGlobalDefaultDebug () |
static void | GlobalDefaultDebugOff () |
static void | GlobalDefaultDebugOn () |
static void | SetGlobalDefaultDebug (bool debugFlag) |
static void | GlobalWarningDisplayOn () |
static void | GlobalWarningDisplayOff () |
static void | SetGlobalWarningDisplay (bool flag) |
static bool | GetGlobalWarningDisplay () |
static void | SetGlobalDefaultNumberOfThreads (unsigned int n) |
static unsigned int | GetGlobalDefaultNumberOfThreads () |
static double | GetGlobalDefaultCoordinateTolerance () |
Access the global tolerance to determine congruent spaces. More... | |
static void | SetGlobalDefaultCoordinateTolerance (double) |
Access the global tolerance to determine congruent spaces. More... | |
static double | GetGlobalDefaultDirectionTolerance () |
Access the global tolerance to determine congruent spaces. More... | |
static void | SetGlobalDefaultDirectionTolerance (double) |
Access the global tolerance to determine congruent spaces. More... | |
Protected Member Functions inherited from itk::simple::ProcessObject | |
virtual unsigned long | AddITKObserver (const itk::EventObject &, itk::Command *) |
virtual itk::ProcessObject * | GetActiveProcess () |
virtual void | OnActiveProcessDelete () |
virtual void | onCommandDelete (const itk::simple::Command *cmd) SITK_NOEXCEPT |
virtual void | PreUpdate (itk::ProcessObject *p) |
virtual void | RemoveITKObserver (EventCommand &e) |
Protected Member Functions inherited from itk::simple::NonCopyable | |
NonCopyable () | |
Static Protected Member Functions inherited from itk::simple::ImageFilter< 1 > | |
static void | FixNonZeroIndex (TImageType *img) |
Static Protected Member Functions inherited from itk::simple::ProcessObject | |
template<class TImageType > | |
static TImageType::ConstPointer | CastImageToITK (const Image &img) |
template<class TImageType > | |
static Image | CastITKToImage (TImageType *img) |
template<class TPixelType , unsigned int VImageDimension, unsigned int VLength, template< typename, unsigned int > class TVector> | |
static Image | CastITKToImage (itk::Image< TVector< TPixelType, VLength >, VImageDimension > *img) |
static const itk::EventObject & | GetITKEventObject (EventEnum e) |
template<typename T > | |
static std::ostream & | ToStringHelper (std::ostream &os, const T &v) |
static std::ostream & | ToStringHelper (std::ostream &os, const char &v) |
static std::ostream & | ToStringHelper (std::ostream &os, const signed char &v) |
static std::ostream & | ToStringHelper (std::ostream &os, const unsigned char &v) |
Denoise a binary image using min/max curvature flow.
BinaryMinMaxCurvatureFlowImageFilter implements a curvature driven image denosing 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:
where if is less than or equal to and , otherwise. is the mean curvature of the iso-brightness contour at point .
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 around each point. The choice of , the stencil radius, governs the scale of the noise to be removed.
The threshold value 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.
Reference: "Level Set Methods and Fast Marching Methods", J.A. Sethian, Cambridge Press, Chapter 16, Second edition, 1999.
Definition at line 62 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
|
private |
Setup for member function dispatching
Definition at line 129 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
Define the pixels types supported by this filter
Definition at line 74 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
typedef BinaryMinMaxCurvatureFlowImageFilter itk::simple::BinaryMinMaxCurvatureFlowImageFilter::Self |
Definition at line 64 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
|
virtual |
Destructor
itk::simple::BinaryMinMaxCurvatureFlowImageFilter::BinaryMinMaxCurvatureFlowImageFilter | ( | ) |
Default Constructor that takes no arguments and initializes default parameters
Execute the filter on the input image
Image itk::simple::BinaryMinMaxCurvatureFlowImageFilter::Execute | ( | const Image & | image1, |
double | timeStep, | ||
uint32_t | numberOfIterations, | ||
int | stencilRadius, | ||
double | threshold | ||
) |
Execute the filter on the input image with the given parameters
|
private |
|
inlinevirtual |
Name of this class
Implements itk::simple::ProcessObject.
Definition at line 112 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
|
inline |
Definition at line 92 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
|
inline |
Definition at line 100 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
|
inline |
Set/Get the threshold value.
Definition at line 110 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
|
inline |
Definition at line 84 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
|
inline |
Definition at line 88 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
|
inline |
Definition at line 96 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
|
inline |
Set/Get the threshold value.
Definition at line 105 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
References itk::simple::Threshold().
|
inline |
Definition at line 80 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
|
virtual |
Print ourselves out
Reimplemented from itk::simple::ProcessObject.
|
friend |
Definition at line 133 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
|
private |
Definition at line 135 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
|
private |
Definition at line 141 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
|
private |
Definition at line 142 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
|
private |
Definition at line 143 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.
|
private |
Definition at line 139 of file sitkBinaryMinMaxCurvatureFlowImageFilter.h.