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::SeparableQuadraticSurrogateRegularizationImageFilter< TImage > Class Template Reference

#include <rtkSeparableQuadraticSurrogateRegularizationImageFilter.h>

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

Public Types

using Pointer = itk::SmartPointer< Self >
 
using Self = SeparableQuadraticSurrogateRegularizationImageFilter
 
using Superclass = itk::ImageToImageFilter< TImage, TImage >
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual const char * GetNameOfClass () const
 
virtual void SetRadius (typename TImage::RegionType::SizeType _arg)
 
virtual TImage::RegionType::SizeType GetRadius ()
 
virtual void SetRegularizationWeights (typename TImage::PixelType _arg)
 
virtual TImage::PixelType GetRegularizationWeights ()
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 SeparableQuadraticSurrogateRegularizationImageFilter ()
 
 ~SeparableQuadraticSurrogateRegularizationImageFilter () override=default
 
itk::ProcessObject::DataObjectPointer MakeOutput (itk::ProcessObject::DataObjectPointerArraySizeType idx) override
 
itk::ProcessObject::DataObjectPointer MakeOutput (const itk::ProcessObject::DataObjectIdentifierType &) override
 
void DynamicThreadedGenerateData (const typename TImage::RegionType &outputRegionForThread) override
 
void GenerateInputRequestedRegion () override
 
TImage::PixelType GreenPriorFirstDerivative (typename TImage::PixelType pix)
 
TImage::PixelType GreenPriorSecondDerivative (typename TImage::PixelType pix)
 

Protected Attributes

itk::PixelTraits< typename TImage::PixelType >::ValueType m_C1
 
itk::PixelTraits< typename TImage::PixelType >::ValueType m_C2
 
TImage::RegionType::SizeType m_Radius
 
TImage::PixelType m_RegularizationWeights
 

Detailed Description

template<typename TImage>
class rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >

For one-step inversion of spectral CT data by the method Mechlem2017, computes regularization term's first and second derivatives.

In SQS-based methods (Long2014, Weidinger2016, Mechlem2017), the regularization term is typically the sum of the "absolute values" of the differences between each pixel and its neighbours. Instead of the actual absolute value function, which can't be differentiated in zero, smooth approximations are used, e.g. the Huber function. Here, we employ another approximation, described in "Bayesian Reconstructions From Emission Tomography Data Using a Modified EM Algorithm", by Peter J. Green, IEEE TMI 1990. With respect to Huber, it has the advantage of not requiring a cut-off parameter.

Definition at line 44 of file rtkSeparableQuadraticSurrogateRegularizationImageFilter.h.

Member Typedef Documentation

◆ Pointer

◆ Self

Standard class type alias.

Definition at line 51 of file rtkSeparableQuadraticSurrogateRegularizationImageFilter.h.

◆ Superclass

template<typename TImage >
using rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::Superclass = itk::ImageToImageFilter<TImage, TImage>

Constructor & Destructor Documentation

◆ SeparableQuadraticSurrogateRegularizationImageFilter()

◆ ~SeparableQuadraticSurrogateRegularizationImageFilter()

Member Function Documentation

◆ CreateAnother()

template<typename TImage >
virtual::itk::LightObject::Pointer rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::CreateAnother ( ) const
virtual

Reimplemented from itk::Object.

◆ DynamicThreadedGenerateData()

template<typename TImage >
void rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::DynamicThreadedGenerateData ( const typename TImage::RegionType outputRegionForThread)
overrideprotected

Does the real work.

◆ GenerateInputRequestedRegion()

template<typename TImage >
void rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::GenerateInputRequestedRegion ( )
overrideprotectedvirtual

Does the real work.

Reimplemented from itk::ProcessObject.

◆ GetNameOfClass()

template<typename TImage >
virtual const char* rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::ImageSource< TOutputImage >.

◆ GetRadius()

template<typename TImage >
virtual TImage::RegionType::SizeType rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::GetRadius ( )
virtual

Set/Get for the radius

◆ GetRegularizationWeights()

template<typename TImage >
virtual TImage::PixelType rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::GetRegularizationWeights ( )
virtual

Set/Get for the regularization weights

◆ GreenPriorFirstDerivative()

template<typename TImage >
TImage::PixelType rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::GreenPriorFirstDerivative ( typename TImage::PixelType  pix)
protected

Derivatives of the absolute value approximation

◆ GreenPriorSecondDerivative()

template<typename TImage >
TImage::PixelType rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::GreenPriorSecondDerivative ( typename TImage::PixelType  pix)
protected

Derivatives of the absolute value approximation

◆ MakeOutput() [1/2]

Creates the Outputs

Reimplemented from itk::ImageSource< TOutputImage >.

◆ MakeOutput() [2/2]

template<typename TImage >
itk::ProcessObject::DataObjectPointer rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::MakeOutput ( const itk::ProcessObject::DataObjectIdentifierType )
overrideprotectedvirtual

Creates the Outputs

Reimplemented from itk::ImageSource< TOutputImage >.

◆ New()

template<typename TImage >
static Pointer rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::New ( )
static

Method for creation through the object factory.

◆ SetRadius()

template<typename TImage >
virtual void rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::SetRadius ( typename TImage::RegionType::SizeType  _arg)
virtual

Set/Get for the radius

◆ SetRegularizationWeights()

template<typename TImage >
virtual void rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::SetRegularizationWeights ( typename TImage::PixelType  _arg)
virtual

Set/Get for the regularization weights

Member Data Documentation

◆ m_C1

template<typename TImage >
itk::PixelTraits<typename TImage::PixelType>::ValueType rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::m_C1
protected

◆ m_C2

template<typename TImage >
itk::PixelTraits<typename TImage::PixelType>::ValueType rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::m_C2
protected

◆ m_Radius

template<typename TImage >
TImage::RegionType::SizeType rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::m_Radius
protected

Member variables

Definition at line 102 of file rtkSeparableQuadraticSurrogateRegularizationImageFilter.h.

◆ m_RegularizationWeights

template<typename TImage >
TImage::PixelType rtk::SeparableQuadraticSurrogateRegularizationImageFilter< TImage >::m_RegularizationWeights
protected

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