RTK  2.0.1
Reconstruction Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage > Class Template Reference

#include <rtkLastDimensionL0GradientDenoisingImageFilter.h>

+ Inheritance diagram for rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >:
+ Collaboration diagram for rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >:

Public Types

using InputPixelType = typename TInputImage::PixelType
 
using Pointer = itk::SmartPointer< Self >
 
using Self = LastDimensionL0GradientDenoisingImageFilter
 
using Superclass = itk::InPlaceImageFilter< TInputImage, TInputImage >
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual const char * GetNameOfClass () const
 
virtual double GetLambda ()
 
virtual void SetLambda (double _arg)
 
virtual unsigned int GetNumberOfIterations ()
 
virtual void SetNumberOfIterations (unsigned int _arg)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

void GenerateInputRequestedRegion () override
 
const itk::ImageRegionSplitterBaseGetImageRegionSplitter (void) const override
 
 LastDimensionL0GradientDenoisingImageFilter ()
 
virtual void OneDimensionMinimizeL0NormOfGradient (InputPixelType *input, unsigned int length, double lambda, unsigned int nbIters)
 
void ThreadedGenerateData (const typename TInputImage::RegionType &outputRegionForThread, itk::ThreadIdType) override
 
 ~LastDimensionL0GradientDenoisingImageFilter () override=default
 

Protected Attributes

double m_Lambda
 
unsigned int m_NumberOfIterations
 
itk::ImageRegionSplitterDirection::Pointer m_Splitter
 

Detailed Description

template<class TInputImage>
class rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >

Denoises along the last dimension, reducing the L0 norm of the gradient.

This filter implements the "Fast and Effective L0 Gradient Minimization by Region Fusion" method, developped by Nguyen and Brown. Their method is computationally demanding, but its restriction to 1D can be implemented efficiently. This is what this filter does.

Test:
rtkl0gradientnormtest
Author
Cyril Mory

Definition at line 43 of file rtkLastDimensionL0GradientDenoisingImageFilter.h.

Member Typedef Documentation

template<class TInputImage >
using rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::InputPixelType = typename TInputImage::PixelType
template<class TInputImage >
using rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::Pointer = itk::SmartPointer< Self >

Standard class type alias.

Definition at line 49 of file rtkLastDimensionL0GradientDenoisingImageFilter.h.

template<class TInputImage >
using rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::Superclass = itk::InPlaceImageFilter<TInputImage, TInputImage>

Constructor & Destructor Documentation

template<class TInputImage >
rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::LastDimensionL0GradientDenoisingImageFilter ( )
protected
template<class TInputImage >
rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::~LastDimensionL0GradientDenoisingImageFilter ( )
overrideprotecteddefault

Member Function Documentation

template<class TInputImage >
virtual::itk::LightObject::Pointer rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::CreateAnother ( ) const
template<class TInputImage >
void rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::GenerateInputRequestedRegion ( )
overrideprotected
template<class TInputImage >
const itk::ImageRegionSplitterBase* rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::GetImageRegionSplitter ( void  ) const
overrideprotected

Splits the OutputRequestedRegion along the first direction, not the last

template<class TInputImage >
virtual double rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::GetLambda ( )
virtual

Get / Set the threshold. Default is 0.001

template<class TInputImage >
virtual const char* rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputImage >
virtual unsigned int rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::GetNumberOfIterations ( )
virtual

Get / Set the number of iterations. Default is 10

template<class TInputImage >
static Pointer rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::New ( )
static

Method for creation through the object factory.

template<class TInputImage >
virtual void rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::OneDimensionMinimizeL0NormOfGradient ( InputPixelType input,
unsigned int  length,
double  lambda,
unsigned int  nbIters 
)
protectedvirtual
template<class TInputImage >
virtual void rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::SetLambda ( double  _arg)
virtual

Get / Set the threshold. Default is 0.001

template<class TInputImage >
virtual void rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::SetNumberOfIterations ( unsigned int  _arg)
virtual

Get / Set the number of iterations. Default is 10

template<class TInputImage >
void rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::ThreadedGenerateData ( const typename TInputImage::RegionType outputRegionForThread,
itk::ThreadIdType   
)
overrideprotected

Does the real work.

Member Data Documentation

template<class TInputImage >
double rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::m_Lambda
protected
template<class TInputImage >
unsigned int rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::m_NumberOfIterations
protected
template<class TInputImage >
itk::ImageRegionSplitterDirection::Pointer rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::m_Splitter
protected

The documentation for this class was generated from the following file: