RTK  2.5.0
Reconstruction Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Attributes | List of all members
rtk::DeconstructImageFilter< TImage > Class Template Reference

#include <rtkDeconstructImageFilter.h>

+ Inheritance diagram for rtk::DeconstructImageFilter< TImage >:
+ Collaboration diagram for rtk::DeconstructImageFilter< TImage >:

Public Types

using ConstPointer = itk::SmartPointer< const Self >
 
using ConvolutionFilterType = rtk::DaubechiesWaveletsConvolutionImageFilter< InputImageType >
 
using DownsampleImageFilterType = rtk::DownsampleImageFilter< InputImageType >
 
using InputImageConstPointer = typename Superclass::InputImageConstPointer
 
using InputImagePointer = typename Superclass::InputImagePointer
 
using InputImageType = typename Superclass::InputImageType
 
using InternalPixelType = typename TImage::InternalPixelType
 
using OutputImagePointer = typename Superclass::OutputImagePointer
 
using OutputImageType = typename Superclass::OutputImageType
 
using PadFilterType = itk::MirrorPadImageFilter< InputImageType, InputImageType >
 
using PixelType = typename TImage::PixelType
 
using Pointer = itk::SmartPointer< Self >
 
using Self = DeconstructImageFilter
 
using Superclass = itk::ImageToImageFilter< TImage, TImage >
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
void GenerateInputRequestedRegion () override
 
void GenerateOutputInformation () override
 
InputImageType::IndexTypeGetIndices ()
 
virtual unsigned int GetNumberOfLevels ()
 
InputImageType::SizeTypeGetSizes ()
 
virtual const char * GetNameOfClass () const
 
virtual void SetNumberOfLevels (unsigned int levels)
 
virtual unsigned int GetOrder ()
 
virtual void SetOrder (unsigned int _arg)
 

Static Public Member Functions

static Pointer New ()
 

Static Public Attributes

static constexpr unsigned int ImageDimension = TImage::ImageDimension
 

Protected Member Functions

virtual unsigned int CalculateNumberOfOutputs ()
 
 DeconstructImageFilter ()
 
void GenerateData () override
 
void GeneratePassVectors ()
 
void ModifyInputOutputStorage ()
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 
 ~DeconstructImageFilter () override=default
 

Private Attributes

std::vector< typename ConvolutionFilterType::Pointerm_ConvolutionFilters
 
std::vector< typename DownsampleImageFilterType::Pointerm_DownsampleFilters
 
std::vector< typename InputImageType::IndexTypem_Indices
 
unsigned int m_NumberOfLevels { 5 }
 
unsigned int m_Order { 3 }
 
std::vector< typename PadFilterType::Pointerm_PadFilters
 
std::vector< typename ConvolutionFilterType::PassVectorm_PassVectors
 
bool m_PipelineConstructed
 
std::vector< typename InputImageType::SizeTypem_Sizes
 

Detailed Description

template<class TImage>
class rtk::DeconstructImageFilter< TImage >

An image filter that deconstructs an image using Daubechies wavelets.

This filter is inspired from Dan Mueller's GIFT package https://www.insight-journal.org/browse/publication/103

Test:
rtkwaveletstest.cxx
Author
Cyril Mory

Definition at line 128 of file rtkDeconstructImageFilter.h.

Member Typedef Documentation

◆ ConstPointer

template<class TImage >
using rtk::DeconstructImageFilter< TImage >::ConstPointer = itk::SmartPointer<const Self>

Definition at line 138 of file rtkDeconstructImageFilter.h.

◆ ConvolutionFilterType

Definition at line 165 of file rtkDeconstructImageFilter.h.

◆ DownsampleImageFilterType

Definition at line 166 of file rtkDeconstructImageFilter.h.

◆ InputImageConstPointer

template<class TImage >
using rtk::DeconstructImageFilter< TImage >::InputImageConstPointer = typename Superclass::InputImageConstPointer

Definition at line 159 of file rtkDeconstructImageFilter.h.

◆ InputImagePointer

template<class TImage >
using rtk::DeconstructImageFilter< TImage >::InputImagePointer = typename Superclass::InputImagePointer

Definition at line 157 of file rtkDeconstructImageFilter.h.

◆ InputImageType

template<class TImage >
using rtk::DeconstructImageFilter< TImage >::InputImageType = typename Superclass::InputImageType

Inherit types from Superclass.

Definition at line 155 of file rtkDeconstructImageFilter.h.

◆ InternalPixelType

template<class TImage >
using rtk::DeconstructImageFilter< TImage >::InternalPixelType = typename TImage::InternalPixelType

Definition at line 161 of file rtkDeconstructImageFilter.h.

◆ OutputImagePointer

template<class TImage >
using rtk::DeconstructImageFilter< TImage >::OutputImagePointer = typename Superclass::OutputImagePointer

Definition at line 158 of file rtkDeconstructImageFilter.h.

◆ OutputImageType

template<class TImage >
using rtk::DeconstructImageFilter< TImage >::OutputImageType = typename Superclass::OutputImageType

Definition at line 156 of file rtkDeconstructImageFilter.h.

◆ PadFilterType

Typedefs for pipeline's subfilters

Definition at line 164 of file rtkDeconstructImageFilter.h.

◆ PixelType

template<class TImage >
using rtk::DeconstructImageFilter< TImage >::PixelType = typename TImage::PixelType

Definition at line 160 of file rtkDeconstructImageFilter.h.

◆ Pointer

template<class TImage >
using rtk::DeconstructImageFilter< TImage >::Pointer = itk::SmartPointer<Self>

Definition at line 137 of file rtkDeconstructImageFilter.h.

◆ Self

template<class TImage >
using rtk::DeconstructImageFilter< TImage >::Self = DeconstructImageFilter

Standard class type alias.

Definition at line 135 of file rtkDeconstructImageFilter.h.

◆ Superclass

template<class TImage >
using rtk::DeconstructImageFilter< TImage >::Superclass = itk::ImageToImageFilter<TImage, TImage>

Definition at line 136 of file rtkDeconstructImageFilter.h.

Constructor & Destructor Documentation

◆ DeconstructImageFilter()

template<class TImage >
rtk::DeconstructImageFilter< TImage >::DeconstructImageFilter ( )
protected

◆ ~DeconstructImageFilter()

template<class TImage >
rtk::DeconstructImageFilter< TImage >::~DeconstructImageFilter ( )
overrideprotecteddefault

Member Function Documentation

◆ CalculateNumberOfOutputs()

template<class TImage >
virtual unsigned int rtk::DeconstructImageFilter< TImage >::CalculateNumberOfOutputs ( )
protectedvirtual

Calculates the number of ProcessObject output images

◆ CreateAnother()

template<class TImage >
virtual::itk::LightObject::Pointer rtk::DeconstructImageFilter< TImage >::CreateAnother ( ) const
virtual

Reimplemented from itk::Object.

◆ GenerateData()

template<class TImage >
void rtk::DeconstructImageFilter< TImage >::GenerateData ( )
overrideprotectedvirtual

Does the real work.

Reimplemented from itk::ImageSource< TOutputImage >.

◆ GenerateInputRequestedRegion()

template<class TImage >
void rtk::DeconstructImageFilter< TImage >::GenerateInputRequestedRegion ( )
overridevirtual

Reimplemented from itk::ProcessObject.

◆ GenerateOutputInformation()

template<class TImage >
void rtk::DeconstructImageFilter< TImage >::GenerateOutputInformation ( )
overridevirtual

DeconstructImageFilter produces images which are of different size than the input image. As such, we reimplement GenerateOutputInformation() in order to inform the pipeline execution model.

Reimplemented from itk::ProcessObject.

◆ GeneratePassVectors()

template<class TImage >
void rtk::DeconstructImageFilter< TImage >::GeneratePassVectors ( )
protected

Creates and sets the kernel sources to generate all kernels.

◆ GetIndices()

template<class TImage >
InputImageType::IndexType* rtk::DeconstructImageFilter< TImage >::GetIndices ( )
inline

Get the index of each convolution filter's output This is required because the downsampling implies a loss of information on the index (both 2n+1 and 2n are downsampled to n), and the upsampling filters used in the reconstruction process need this information.

Definition at line 220 of file rtkDeconstructImageFilter.h.

◆ GetNameOfClass()

template<class TImage >
virtual const char* rtk::DeconstructImageFilter< TImage >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::ImageSource< TOutputImage >.

◆ GetNumberOfLevels()

template<class TImage >
virtual unsigned int rtk::DeconstructImageFilter< TImage >::GetNumberOfLevels ( )
inlinevirtual

Get the number of input levels (per image).

Definition at line 179 of file rtkDeconstructImageFilter.h.

◆ GetOrder()

template<class TImage >
virtual unsigned int rtk::DeconstructImageFilter< TImage >::GetOrder ( )
virtual

Get/Set the order of the wavelet filters

◆ GetSizes()

template<class TImage >
InputImageType::SizeType* rtk::DeconstructImageFilter< TImage >::GetSizes ( )
inline

Get the size of each convolution filter's output This is required because the downsampling implies a loss of information on the size (both 2n+1 and 2n are downsampled to n), and the upsampling filters used in the reconstruction process need this information.

Definition at line 207 of file rtkDeconstructImageFilter.h.

◆ ModifyInputOutputStorage()

template<class TImage >
void rtk::DeconstructImageFilter< TImage >::ModifyInputOutputStorage ( )
protected

Modifies the storage for Input and Output images. Should be called after changes to levels, bands, deconstruct, reconstruct, etc...

◆ New()

template<class TImage >
static Pointer rtk::DeconstructImageFilter< TImage >::New ( )
static

Method for creation through the object factory.

◆ PrintSelf()

template<class TImage >
void rtk::DeconstructImageFilter< TImage >::PrintSelf ( std::ostream &  os,
itk::Indent  indent 
) const
overrideprotectedvirtual

Reimplemented from itk::ImageSource< TOutputImage >.

◆ SetNumberOfLevels()

template<class TImage >
virtual void rtk::DeconstructImageFilter< TImage >::SetNumberOfLevels ( unsigned int  levels)
inlinevirtual

Set the number of input levels.

Definition at line 170 of file rtkDeconstructImageFilter.h.

◆ SetOrder()

template<class TImage >
virtual void rtk::DeconstructImageFilter< TImage >::SetOrder ( unsigned int  _arg)
virtual

Get/Set the order of the wavelet filters

Member Data Documentation

◆ ImageDimension

template<class TImage >
constexpr unsigned int rtk::DeconstructImageFilter< TImage >::ImageDimension = TImage::ImageDimension
static

ImageDimension enumeration.

Definition at line 152 of file rtkDeconstructImageFilter.h.

◆ m_ConvolutionFilters

template<class TImage >
std::vector<typename ConvolutionFilterType::Pointer> rtk::DeconstructImageFilter< TImage >::m_ConvolutionFilters
private

Definition at line 260 of file rtkDeconstructImageFilter.h.

◆ m_DownsampleFilters

template<class TImage >
std::vector<typename DownsampleImageFilterType::Pointer> rtk::DeconstructImageFilter< TImage >::m_DownsampleFilters
private

Definition at line 262 of file rtkDeconstructImageFilter.h.

◆ m_Indices

template<class TImage >
std::vector<typename InputImageType::IndexType> rtk::DeconstructImageFilter< TImage >::m_Indices
private

Definition at line 257 of file rtkDeconstructImageFilter.h.

◆ m_NumberOfLevels

template<class TImage >
unsigned int rtk::DeconstructImageFilter< TImage >::m_NumberOfLevels { 5 }
private

Definition at line 250 of file rtkDeconstructImageFilter.h.

◆ m_Order

template<class TImage >
unsigned int rtk::DeconstructImageFilter< TImage >::m_Order { 3 }
private

Definition at line 251 of file rtkDeconstructImageFilter.h.

◆ m_PadFilters

template<class TImage >
std::vector<typename PadFilterType::Pointer> rtk::DeconstructImageFilter< TImage >::m_PadFilters
private

Definition at line 258 of file rtkDeconstructImageFilter.h.

◆ m_PassVectors

template<class TImage >
std::vector<typename ConvolutionFilterType::PassVector> rtk::DeconstructImageFilter< TImage >::m_PassVectors
private

Definition at line 264 of file rtkDeconstructImageFilter.h.

◆ m_PipelineConstructed

template<class TImage >
bool rtk::DeconstructImageFilter< TImage >::m_PipelineConstructed
private
Initial value:
{
false
}

Definition at line 252 of file rtkDeconstructImageFilter.h.

◆ m_Sizes

template<class TImage >
std::vector<typename InputImageType::SizeType> rtk::DeconstructImageFilter< TImage >::m_Sizes
private

Definition at line 256 of file rtkDeconstructImageFilter.h.


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