|
| 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 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...
|
| |
| static bool | SetGlobalDefaultThreader (const std::string &threader) |
| | Set/Get the default threader used for process objects. More...
|
| |
| static std::string | GetGlobalDefaultThreader () |
| | Set/Get the default threader used for process objects. More...
|
| |
| static void | SetGlobalDefaultNumberOfThreads (unsigned int n) |
| |
| static unsigned int | GetGlobalDefaultNumberOfThreads () |
| | Set/Get the default threader used for process objects. More...
|
| |
| void | CheckImageMatchingDimension (const Image &image1, const Image &image2, const std::string &image2Name) |
| |
| void | CheckImageMatchingPixelType (const Image &image1, const Image &image2, const std::string &image2Name) |
| |
| void | CheckImageMatchingSize (const Image &image1, const Image &image2, const std::string &image2Name) |
| |
| virtual unsigned long | AddITKObserver (const itk::EventObject &, itk::Command *) |
| |
| virtual itk::ProcessObject * | GetActiveProcess () |
| |
| virtual void | OnActiveProcessDelete () |
| |
| virtual void | onCommandDelete (const itk::simple::Command *cmd) noexcept |
| |
| virtual void | PreUpdate (itk::ProcessObject *p) |
| |
| virtual void | RemoveITKObserver (EventCommand &e) |
| |
| | NonCopyable ()=default |
| |
| | NonCopyable (const NonCopyable &)=delete |
| |
| NonCopyable & | operator= (const NonCopyable &)=delete |
| |
| template<class TImageType > |
| static void | FixNonZeroIndex (TImageType *img) |
| |
| template<class TImageType > |
| static TImageType::ConstPointer | CastImageToITK (const Image &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) |
| |
| template<class TImageType > |
| static Image | CastITKToImage (TImageType *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 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 also
- MinMaxCurvatureFlowFunction
-
CurvatureFlowImageFilter
-
BinaryMinMaxCurvatureFlowImageFilter
-
itk::simple::MinMaxCurvatureFlow for the procedural interface
-
itk::MinMaxCurvatureFlowImageFilter for the Doxygen on the original ITK class.
Definition at line 65 of file sitkMinMaxCurvatureFlowImageFilter.h.