RTK  1.4.0
Reconstruction Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision > Class Template Reference

#include <rtkFFTRampImageFilter.h>

+ Inheritance diagram for rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >:
+ Collaboration diagram for rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >:

Public Types

typedef itk::SmartPointer< const SelfConstPointer
 
typedef FFTInputImageType::Pointer FFTInputImagePointer
 
typedef Superclass::FFTInputImageType FFTInputImageType
 
typedef FFTOutputImageType::Pointer FFTOutputImagePointer
 
typedef Superclass::FFTOutputImageType FFTOutputImageType
 
typedef TFFTPrecision FFTPrecisionType
 
typedef InputImageType::IndexType IndexType
 
typedef TInputImage InputImageType
 
typedef TOutputImage OutputImageType
 
typedef itk::SmartPointer< SelfPointer
 
typedef FFTRampImageFilter Self
 
typedef InputImageType::SizeType SizeType
 
typedef rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision > Superclass
 
- Public Types inherited from rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >
typedef itk::SmartPointer< const SelfConstPointer
 
typedef FFTInputImageType::Pointer FFTInputImagePointer
 
typedef itk::Image< TFFTPrecision, TInputImage::ImageDimension > FFTInputImageType
 
typedef FFTOutputImageType::Pointer FFTOutputImagePointer
 
typedef itk::Image< std::complex< TFFTPrecision >, TInputImage::ImageDimension > FFTOutputImageType
 
typedef InputImageType::IndexType IndexType
 
typedef TInputImage InputImageType
 
typedef TOutputImage OutputImageType
 
typedef itk::SmartPointer< SelfPointer
 
typedef InputImageType::RegionType RegionType
 
typedef FFTProjectionsConvolutionImageFilter Self
 
typedef InputImageType::SizeType SizeType
 
typedef itk::ImageToImageFilter< TInputImage, TOutputImage > Superclass
 
typedef itk::Vector< int, 2 > ZeroPadFactorsType
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual const char * GetNameOfClass () const
 
virtual double GetHannCutFrequency () const
 
 itkSetMacro (HannCutFrequency, double)
 
virtual double GetCosineCutFrequency () const
 
 itkSetMacro (CosineCutFrequency, double)
 
virtual double GetHammingFrequency () const
 
 itkSetMacro (HammingFrequency, double)
 
virtual double GetHannCutFrequencyY () const
 
 itkSetMacro (HannCutFrequencyY, double)
 
virtual double GetRamLakCutFrequency () const
 
 itkSetMacro (RamLakCutFrequency, double)
 
virtual double GetSheppLoganCutFrequency () const
 
 itkSetMacro (SheppLoganCutFrequency, double)
 
- Public Member Functions inherited from rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >
virtual int GetGreatestPrimeFactor () const
 
virtual void SetGreatestPrimeFactor (int _arg)
 
virtual double GetTruncationCorrection () const
 
virtual void SetTruncationCorrection (double _arg)
 
virtual ZeroPadFactorsType GetZeroPadFactors () const
 
virtual void SetZeroPadFactors (ZeroPadFactorsType _arg)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 FFTRampImageFilter ()
 
void GenerateInputRequestedRegion () override
 
void UpdateFFTProjectionsConvolutionKernel (const SizeType size) override
 
virtual ~FFTRampImageFilter () override
 
- Protected Member Functions inherited from rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >
void AfterThreadedGenerateData () override
 
void BeforeThreadedGenerateData () override
 
 FFTProjectionsConvolutionImageFilter ()
 
void GenerateInputRequestedRegion () override
 
int GreatestPrimeFactor (int n) const
 
bool IsPrime (int n) const
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 
void ThreadedGenerateData (const RegionType &outputRegionForThread, ThreadIdType threadId) override
 
virtual void UpdateTruncationMirrorWeights ()
 
virtual ~FFTProjectionsConvolutionImageFilter () override
 
virtual FFTInputImagePointer PadInputImageRegion (const RegionType &inputRegion)
 
RegionType GetPaddedImageRegion (const RegionType &inputRegion)
 

Private Member Functions

 FFTRampImageFilter (const Self &)
 
void operator= (const Self &)
 

Private Attributes

double m_CosineCutFrequency
 
double m_HammingFrequency
 
double m_HannCutFrequency
 
double m_HannCutFrequencyY
 
SizeType m_PreviousKernelUpdateSize
 
double m_RamLakCutFrequency
 
double m_SheppLoganCutFrequency
 

Additional Inherited Members

- Static Public Attributes inherited from rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >
static const unsigned int ImageDimension = TOutputImage::ImageDimension
 
- Protected Attributes inherited from rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >
int m_KernelDimension
 
FFTOutputImagePointer m_KernelFFT
 
std::vector< TFFTPrecision > m_TruncationMirrorWeights
 

Detailed Description

template<class TInputImage, class TOutputImage = TInputImage, class TFFTPrecision = double>
class rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >

Implements the ramp image filter of the filtered backprojection algorithm.

The filter code is based on FFTProjectionsConvolutionImageFilter by Gaetan Lehmann (see http://hdl.handle.net/10380/3154)

Test:
rtkrampfiltertest.cxx
Author
Simon Rit

Definition at line 62 of file rtkFFTRampImageFilter.h.

Member Typedef Documentation

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
typedef itk::SmartPointer<const Self> rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::ConstPointer

Definition at line 72 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
typedef FFTInputImageType::Pointer rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::FFTInputImagePointer

Definition at line 82 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
typedef Superclass::FFTInputImageType rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::FFTInputImageType

Definition at line 81 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
typedef FFTOutputImageType::Pointer rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::FFTOutputImagePointer

Definition at line 84 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
typedef Superclass::FFTOutputImageType rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::FFTOutputImageType

Definition at line 83 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
typedef TFFTPrecision rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::FFTPrecisionType

Definition at line 77 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
typedef InputImageType::IndexType rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::IndexType

Definition at line 78 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
typedef TInputImage rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::InputImageType

Some convenient typedefs.

Definition at line 75 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
typedef TOutputImage rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::OutputImageType

Definition at line 76 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
typedef itk::SmartPointer<Self> rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::Pointer

Definition at line 71 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
typedef FFTRampImageFilter rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::Self

Standard class typedefs.

Definition at line 67 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
typedef InputImageType::SizeType rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::SizeType

Definition at line 79 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
typedef rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision> rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::Superclass

Definition at line 70 of file rtkFFTRampImageFilter.h.

Constructor & Destructor Documentation

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::FFTRampImageFilter ( )
protected
template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
virtual rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::~FFTRampImageFilter ( )
inlineoverrideprotectedvirtual

Definition at line 136 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::FFTRampImageFilter ( const Self )
private

Member Function Documentation

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
virtual::itk::LightObject::Pointer rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::CreateAnother ( ) const
template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
void rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::GenerateInputRequestedRegion ( )
overrideprotected
template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
virtual double rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::GetCosineCutFrequency ( ) const
virtual

Set/Get the Cosine Cut window frequency. 0 (default) disables it

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
virtual double rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::GetHammingFrequency ( ) const
virtual

Set/Get the Hamming window frequency. 0 (default) disables it

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
virtual double rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::GetHannCutFrequency ( ) const
virtual

Set/Get the Hann window frequency. 0 (default) disables it

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
virtual double rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::GetHannCutFrequencyY ( ) const
virtual

Set/Get the Hann window frequency in Y direction. 0 (default) disables it

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
virtual const char* rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::GetNameOfClass ( ) const
virtual
template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
virtual double rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::GetRamLakCutFrequency ( ) const
virtual

Set/Get the Ram-Lak window frequency (0...1). 0 (default) disable it. Equation and further explanation about Ram-Lak filter could be found in:

  1. Fundamentals of 2D and 3D reconstruction (by Dr. Günter Lauritsch). http://campar.in.tum.de/twiki/pub/Chair/TeachingWs04IOIV/08CTReconstruction.pdf
  2. Reconstruction. http://oftankonyv.reak.bme.hu/tiki-index.php?page=Reconstruction
template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
virtual double rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::GetSheppLoganCutFrequency ( ) const
virtual

Set/Get the Shepp-Logan window frequency (0...1). 0 (default) disable it. Equation and further explanation about Shepp-Logan filter could be found in:

  1. Fundamentals of 2D and 3D reconstruction (by Dr. Günter Lauritsch). http://campar.in.tum.de/twiki/pub/Chair/TeachingWs04IOIV/08CTReconstruction.pdf
  2. Reconstruction. http://oftankonyv.reak.bme.hu/tiki-index.php?page=Reconstruction
template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::itkSetMacro ( HannCutFrequency  ,
double   
)

Set/Get the Hann window frequency. 0 (default) disables it

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::itkSetMacro ( CosineCutFrequency  ,
double   
)

Set/Get the Cosine Cut window frequency. 0 (default) disables it

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::itkSetMacro ( HammingFrequency  ,
double   
)

Set/Get the Hamming window frequency. 0 (default) disables it

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::itkSetMacro ( HannCutFrequencyY  ,
double   
)

Set/Get the Hann window frequency in Y direction. 0 (default) disables it

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::itkSetMacro ( RamLakCutFrequency  ,
double   
)

Set/Get the Ram-Lak window frequency (0...1). 0 (default) disable it. Equation and further explanation about Ram-Lak filter could be found in:

  1. Fundamentals of 2D and 3D reconstruction (by Dr. Günter Lauritsch). http://campar.in.tum.de/twiki/pub/Chair/TeachingWs04IOIV/08CTReconstruction.pdf
  2. Reconstruction. http://oftankonyv.reak.bme.hu/tiki-index.php?page=Reconstruction
template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::itkSetMacro ( SheppLoganCutFrequency  ,
double   
)

Set/Get the Shepp-Logan window frequency (0...1). 0 (default) disable it. Equation and further explanation about Shepp-Logan filter could be found in:

  1. Fundamentals of 2D and 3D reconstruction (by Dr. Günter Lauritsch). http://campar.in.tum.de/twiki/pub/Chair/TeachingWs04IOIV/08CTReconstruction.pdf
  2. Reconstruction. http://oftankonyv.reak.bme.hu/tiki-index.php?page=Reconstruction
template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
static Pointer rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::New ( )
static

Standard New method.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
void rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::operator= ( const Self )
private
template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
void rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::UpdateFFTProjectionsConvolutionKernel ( const SizeType  size)
overrideprotectedvirtual

Creates and return a pointer to one line of the ramp kernel in Fourier space. Used in generate data functions.

Implements rtk::FFTProjectionsConvolutionImageFilter< TInputImage, TOutputImage, TFFTPrecision >.

Member Data Documentation

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
double rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::m_CosineCutFrequency
private

Definition at line 153 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
double rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::m_HammingFrequency
private

Definition at line 154 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
double rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::m_HannCutFrequency
private

Cut frequency of Hann, Cosine and Hamming windows. The first one which is non-zero is used.

Definition at line 152 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
double rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::m_HannCutFrequencyY
private

Definition at line 155 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
SizeType rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::m_PreviousKernelUpdateSize
private

Definition at line 162 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
double rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::m_RamLakCutFrequency
private

Cut frequency of Ram-Lak and Shepp-Logan

Definition at line 159 of file rtkFFTRampImageFilter.h.

template<class TInputImage , class TOutputImage = TInputImage, class TFFTPrecision = double>
double rtk::FFTRampImageFilter< TInputImage, TOutputImage, TFFTPrecision >::m_SheppLoganCutFrequency
private

Definition at line 160 of file rtkFFTRampImageFilter.h.


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