RTK  2.5.0
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 () 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

◆ InputPixelType

template<class TInputImage >
using rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::InputPixelType = typename TInputImage::PixelType

◆ Pointer

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

◆ Self

Standard class type alias.

Definition at line 50 of file rtkLastDimensionL0GradientDenoisingImageFilter.h.

◆ Superclass

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

Constructor & Destructor Documentation

◆ LastDimensionL0GradientDenoisingImageFilter()

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

◆ ~LastDimensionL0GradientDenoisingImageFilter()

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

Member Function Documentation

◆ CreateAnother()

template<class TInputImage >
virtual::itk::LightObject::Pointer rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::CreateAnother ( ) const
virtual

Reimplemented from itk::Object.

◆ GenerateInputRequestedRegion()

template<class TInputImage >
void rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::GenerateInputRequestedRegion ( )
overrideprotectedvirtual

◆ GetImageRegionSplitter()

template<class TInputImage >
const itk::ImageRegionSplitterBase* rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::GetImageRegionSplitter ( ) const
overrideprotectedvirtual

Splits the OutputRequestedRegion along the first direction, not the last

Reimplemented from itk::ImageSource< TOutputImage >.

◆ GetLambda()

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

Get / Set the threshold. Default is 0.001

◆ GetNameOfClass()

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

Run-time type information (and related methods).

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

◆ GetNumberOfIterations()

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

Get / Set the number of iterations. Default is 10

◆ New()

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

Method for creation through the object factory.

◆ OneDimensionMinimizeL0NormOfGradient()

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

◆ SetLambda()

template<class TInputImage >
virtual void rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::SetLambda ( double  _arg)
virtual

Get / Set the threshold. Default is 0.001

◆ SetNumberOfIterations()

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

Get / Set the number of iterations. Default is 10

◆ ThreadedGenerateData()

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

Does the real work.

Member Data Documentation

◆ m_Lambda

template<class TInputImage >
double rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::m_Lambda
protected

◆ m_NumberOfIterations

template<class TInputImage >
unsigned int rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::m_NumberOfIterations
protected

◆ m_Splitter

template<class TInputImage >
itk::ImageRegionSplitterDirection::Pointer rtk::LastDimensionL0GradientDenoisingImageFilter< TInputImage >::m_Splitter
protected

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