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

#include <rtkLagCorrectionImageFilter.h>

+ Inheritance diagram for rtk::LagCorrectionImageFilter< TImage, VModelOrder >:
+ Collaboration diagram for rtk::LagCorrectionImageFilter< TImage, VModelOrder >:

Public Types

using ConstPointer = itk::SmartPointer< const Self >
 
using FloatVectorType = typename std::vector< float >
 
using ImageRegionType = typename TImage::RegionType
 
using ImageSizeType = typename TImage::SizeType
 
using IndexType = typename TImage::IndexType
 
using OutputImageRegionType = typename TImage::RegionType
 
using PixelType = typename TImage::PixelType
 
using Pointer = itk::SmartPointer< Self >
 
using Self = LagCorrectionImageFilter
 
using Superclass = itk::InPlaceImageFilter< TImage, TImage >
 
using VectorType = typename itk::Vector< float, VModelOrder >
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual const char * GetNameOfClass () const
 
virtual VectorType GetA ()
 
virtual VectorType GetB ()
 
virtual void SetCoefficients (const VectorType A, const VectorType B)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

void GenerateInputRequestedRegion () override
 
void GenerateOutputInformation () override
 
 LagCorrectionImageFilter ()
 
void ThreadedGenerateData (const ImageRegionType &thRegion, itk::ThreadIdType threadId) override
 
 ~LagCorrectionImageFilter () override=default
 
unsigned int SplitRequestedRegion (unsigned int i, unsigned int num, OutputImageRegionType &splitRegion) override
 
virtual int SplitRequestedRegion (int i, int num, OutputImageRegionType &splitRegion)
 

Protected Attributes

VectorType m_A
 
VectorType m_B
 
VectorType m_ExpmA
 
FloatVectorType m_S
 
float m_SumB
 

Private Attributes

bool m_NewParamJustReceived
 
IndexType m_StartIdx
 

Detailed Description

template<typename TImage, unsigned VModelOrder>
class rtk::LagCorrectionImageFilter< TImage, VModelOrder >

Classical Linear Time Invariant Lag correction.

Recursive correction algorithm for detector decay characteristics. Based on [Hsieh, Proceedings of SPIE, 2000]

The IRF (Impulse Response Function) is given by: \(h(k)=b_0 \delta(k) + \sum_{n=1}^N b_n e^{-a_n k}\) where \(k\) is the discrete time, \(N\) is the model order (number of exponentials), \(\delta(k)\) is the impulse function and the \({a_n, b_n}_{n=1:N}\) parameters are respectively the exponential rates and lag coefficients to be provided. The sum of all $b_n$ must be normalized such that h(0) equals 1.

The parameters are typically estimated from either RSRF (Rising Step RF) or FSRF (Falling Step RF) response functions.

Test:
rtklagcorrectiontest.cxx
Author
Sebastien Brousmiche

Definition at line 55 of file rtkLagCorrectionImageFilter.h.

Member Typedef Documentation

◆ ConstPointer

template<typename TImage , unsigned VModelOrder>
using rtk::LagCorrectionImageFilter< TImage, VModelOrder >::ConstPointer = itk::SmartPointer<const Self>

Definition at line 64 of file rtkLagCorrectionImageFilter.h.

◆ FloatVectorType

template<typename TImage , unsigned VModelOrder>
using rtk::LagCorrectionImageFilter< TImage, VModelOrder >::FloatVectorType = typename std::vector<float>

Definition at line 82 of file rtkLagCorrectionImageFilter.h.

◆ ImageRegionType

template<typename TImage , unsigned VModelOrder>
using rtk::LagCorrectionImageFilter< TImage, VModelOrder >::ImageRegionType = typename TImage::RegionType

Definition at line 77 of file rtkLagCorrectionImageFilter.h.

◆ ImageSizeType

template<typename TImage , unsigned VModelOrder>
using rtk::LagCorrectionImageFilter< TImage, VModelOrder >::ImageSizeType = typename TImage::SizeType

Definition at line 78 of file rtkLagCorrectionImageFilter.h.

◆ IndexType

template<typename TImage , unsigned VModelOrder>
using rtk::LagCorrectionImageFilter< TImage, VModelOrder >::IndexType = typename TImage::IndexType

Definition at line 80 of file rtkLagCorrectionImageFilter.h.

◆ OutputImageRegionType

template<typename TImage , unsigned VModelOrder>
using rtk::LagCorrectionImageFilter< TImage, VModelOrder >::OutputImageRegionType = typename TImage::RegionType

Definition at line 83 of file rtkLagCorrectionImageFilter.h.

◆ PixelType

template<typename TImage , unsigned VModelOrder>
using rtk::LagCorrectionImageFilter< TImage, VModelOrder >::PixelType = typename TImage::PixelType

Definition at line 79 of file rtkLagCorrectionImageFilter.h.

◆ Pointer

template<typename TImage , unsigned VModelOrder>
using rtk::LagCorrectionImageFilter< TImage, VModelOrder >::Pointer = itk::SmartPointer<Self>

Definition at line 63 of file rtkLagCorrectionImageFilter.h.

◆ Self

template<typename TImage , unsigned VModelOrder>
using rtk::LagCorrectionImageFilter< TImage, VModelOrder >::Self = LagCorrectionImageFilter

Standard class type alias.

Definition at line 61 of file rtkLagCorrectionImageFilter.h.

◆ Superclass

template<typename TImage , unsigned VModelOrder>
using rtk::LagCorrectionImageFilter< TImage, VModelOrder >::Superclass = itk::InPlaceImageFilter<TImage, TImage>

Definition at line 62 of file rtkLagCorrectionImageFilter.h.

◆ VectorType

template<typename TImage , unsigned VModelOrder>
using rtk::LagCorrectionImageFilter< TImage, VModelOrder >::VectorType = typename itk::Vector<float, VModelOrder>

Definition at line 81 of file rtkLagCorrectionImageFilter.h.

Constructor & Destructor Documentation

◆ LagCorrectionImageFilter()

template<typename TImage , unsigned VModelOrder>
rtk::LagCorrectionImageFilter< TImage, VModelOrder >::LagCorrectionImageFilter ( )
protected

◆ ~LagCorrectionImageFilter()

template<typename TImage , unsigned VModelOrder>
rtk::LagCorrectionImageFilter< TImage, VModelOrder >::~LagCorrectionImageFilter ( )
overrideprotecteddefault

Member Function Documentation

◆ CreateAnother()

template<typename TImage , unsigned VModelOrder>
virtual::itk::LightObject::Pointer rtk::LagCorrectionImageFilter< TImage, VModelOrder >::CreateAnother ( ) const
virtual

Reimplemented from itk::Object.

◆ GenerateInputRequestedRegion()

template<typename TImage , unsigned VModelOrder>
void rtk::LagCorrectionImageFilter< TImage, VModelOrder >::GenerateInputRequestedRegion ( )
overrideprotectedvirtual

◆ GenerateOutputInformation()

template<typename TImage , unsigned VModelOrder>
void rtk::LagCorrectionImageFilter< TImage, VModelOrder >::GenerateOutputInformation ( )
overrideprotectedvirtual

Reimplemented from itk::ProcessObject.

◆ GetA()

template<typename TImage , unsigned VModelOrder>
virtual VectorType rtk::LagCorrectionImageFilter< TImage, VModelOrder >::GetA ( )
virtual

Get / Set the model parameters A and B

◆ GetB()

template<typename TImage , unsigned VModelOrder>
virtual VectorType rtk::LagCorrectionImageFilter< TImage, VModelOrder >::GetB ( )
virtual

Get / Set the model parameters A and B

◆ GetNameOfClass()

template<typename TImage , unsigned VModelOrder>
virtual const char* rtk::LagCorrectionImageFilter< TImage, VModelOrder >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

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

◆ New()

template<typename TImage , unsigned VModelOrder>
static Pointer rtk::LagCorrectionImageFilter< TImage, VModelOrder >::New ( )
static

Method for creation through the object factory.

◆ SetCoefficients()

template<typename TImage , unsigned VModelOrder>
virtual void rtk::LagCorrectionImageFilter< TImage, VModelOrder >::SetCoefficients ( const VectorType  A,
const VectorType  B 
)
inlinevirtual

Get / Set the model parameters A and B

Definition at line 89 of file rtkLagCorrectionImageFilter.h.

◆ SplitRequestedRegion() [1/2]

template<typename TImage , unsigned VModelOrder>
unsigned int rtk::LagCorrectionImageFilter< TImage, VModelOrder >::SplitRequestedRegion ( unsigned int  i,
unsigned int  num,
OutputImageRegionType splitRegion 
)
overrideprotectedvirtual

The correction is applied along the third (stack) dimension. Therefore, we must avoid splitting along the stack. The split is done along the second dimension.

Reimplemented from itk::ImageSource< TOutputImage >.

◆ SplitRequestedRegion() [2/2]

template<typename TImage , unsigned VModelOrder>
virtual int rtk::LagCorrectionImageFilter< TImage, VModelOrder >::SplitRequestedRegion ( int  i,
int  num,
OutputImageRegionType splitRegion 
)
protectedvirtual

The correction is applied along the third (stack) dimension. Therefore, we must avoid splitting along the stack. The split is done along the second dimension.

◆ ThreadedGenerateData()

template<typename TImage , unsigned VModelOrder>
void rtk::LagCorrectionImageFilter< TImage, VModelOrder >::ThreadedGenerateData ( const ImageRegionType thRegion,
itk::ThreadIdType  threadId 
)
overrideprotected

Member Data Documentation

◆ m_A

template<typename TImage , unsigned VModelOrder>
VectorType rtk::LagCorrectionImageFilter< TImage, VModelOrder >::m_A
protected

Definition at line 126 of file rtkLagCorrectionImageFilter.h.

◆ m_B

template<typename TImage , unsigned VModelOrder>
VectorType rtk::LagCorrectionImageFilter< TImage, VModelOrder >::m_B
protected

Definition at line 127 of file rtkLagCorrectionImageFilter.h.

◆ m_ExpmA

template<typename TImage , unsigned VModelOrder>
VectorType rtk::LagCorrectionImageFilter< TImage, VModelOrder >::m_ExpmA
protected

Definition at line 128 of file rtkLagCorrectionImageFilter.h.

◆ m_NewParamJustReceived

template<typename TImage , unsigned VModelOrder>
bool rtk::LagCorrectionImageFilter< TImage, VModelOrder >::m_NewParamJustReceived
private

Definition at line 135 of file rtkLagCorrectionImageFilter.h.

◆ m_S

template<typename TImage , unsigned VModelOrder>
FloatVectorType rtk::LagCorrectionImageFilter< TImage, VModelOrder >::m_S
protected

Definition at line 132 of file rtkLagCorrectionImageFilter.h.

◆ m_StartIdx

template<typename TImage , unsigned VModelOrder>
IndexType rtk::LagCorrectionImageFilter< TImage, VModelOrder >::m_StartIdx
private

Definition at line 136 of file rtkLagCorrectionImageFilter.h.

◆ m_SumB

template<typename TImage , unsigned VModelOrder>
float rtk::LagCorrectionImageFilter< TImage, VModelOrder >::m_SumB
protected

Definition at line 129 of file rtkLagCorrectionImageFilter.h.


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