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

#include <rtkAmsterdamShroudImageFilter.h>

+ Inheritance diagram for rtk::AmsterdamShroudImageFilter< TInputImage >:
+ Collaboration diagram for rtk::AmsterdamShroudImageFilter< TInputImage >:

Public Types

using ConstPointer = itk::SmartPointer< const Self >
 
using GeometryPointer = typename GeometryType::Pointer
 
using GeometryType = rtk::ThreeDCircularProjectionGeometry
 
using Pointer = itk::SmartPointer< Self >
 
using PointType = itk::Point< double, 3 >
 
using Self = AmsterdamShroudImageFilter
 
using Superclass = itk::ImageToImageFilter< TInputImage, itk::Image< double, TInputImage::ImageDimension - 1 > >
 
using TOutputImage = itk::Image< double, TInputImage::ImageDimension - 1 >
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual unsigned int GetUnsharpMaskSize ()
 
virtual void SetUnsharpMaskSize (unsigned int _arg)
 
virtual GeometryTypeGetModifiableGeometry ()
 
virtual const GeometryTypeGetGeometry () const
 
virtual void SetGeometry (GeometryType *_arg)
 
virtual PointType GetCorner1 ()
 
virtual void SetCorner1 (PointType _arg)
 
virtual PointType GetCorner2 ()
 
virtual void SetCorner2 (PointType _arg)
 
virtual const char * GetNameOfClass () const
 

Static Public Member Functions

static Pointer New ()
 

Static Public Attributes

static constexpr unsigned int ImageDimension = TOutputImage::ImageDimension
 
static constexpr unsigned int InputImageDimension = TInputImage::ImageDimension
 
static constexpr unsigned int OutputImageDimension = TOutputImage::ImageDimension
 

Protected Member Functions

 AmsterdamShroudImageFilter ()
 
virtual void CropOutsideProjectedBox ()
 
void GenerateData () override
 
void GenerateInputRequestedRegion () override
 
void GenerateOutputInformation () override
 
void UpdateUnsharpMaskKernel ()
 
 ~AmsterdamShroudImageFilter () override=default
 

Private Types

using ConvolutionType = itk::ConvolutionImageFilter< TOutputImage, TOutputImage >
 
using DerivativeType = itk::RecursiveGaussianImageFilter< TInputImage, TInputImage >
 
using NegativeType = itk::MultiplyImageFilter< TInputImage, TInputImage, TInputImage >
 
using PermuteType = itk::PermuteAxesImageFilter< TOutputImage >
 
using SubtractType = itk::SubtractImageFilter< TOutputImage, TOutputImage >
 
using SumType = itk::SumProjectionImageFilter< TInputImage, TOutputImage >
 
using ThresholdType = itk::ThresholdImageFilter< TInputImage >
 

Private Attributes

ConvolutionType::Pointer m_ConvolutionFilter
 
PointType m_Corner1 { 0. }
 
PointType m_Corner2 { 0. }
 
DerivativeType::Pointer m_DerivativeFilter
 
GeometryPointer m_Geometry { nullptr }
 
NegativeType::Pointer m_NegativeFilter
 
PermuteType::Pointer m_PermuteFilter
 
SubtractType::Pointer m_SubtractFilter
 
SumType::Pointer m_SumFilter
 
ThresholdType::Pointer m_ThresholdFilter
 
unsigned int m_UnsharpMaskSize { 17 }
 

Detailed Description

template<class TInputImage>
class rtk::AmsterdamShroudImageFilter< TInputImage >

Compute the Amsterdam shroud image for respiratory signal extraction.

The Amsterdam shroud is an image that is used to extract a respiratory signal from cone-beam projection images. The Y-axis is time and the X-axis is the cranio-caudal position. More information is available in [Zijp, ICCR, 2004], [Sonke, Med Phys, 2005] and [Rit, IJROBP, 2012].

The following mini-pipeline of ITK filters is used for its RTK implementation:

Test:
rtkamsterdamshroudtest.cxx
Author
Simon Rit

Definition at line 81 of file rtkAmsterdamShroudImageFilter.h.

Member Typedef Documentation

◆ ConstPointer

template<class TInputImage >
using rtk::AmsterdamShroudImageFilter< TInputImage >::ConstPointer = itk::SmartPointer<const Self>

Definition at line 91 of file rtkAmsterdamShroudImageFilter.h.

◆ ConvolutionType

template<class TInputImage >
using rtk::AmsterdamShroudImageFilter< TInputImage >::ConvolutionType = itk::ConvolutionImageFilter<TOutputImage, TOutputImage>
private

Definition at line 164 of file rtkAmsterdamShroudImageFilter.h.

◆ DerivativeType

template<class TInputImage >
using rtk::AmsterdamShroudImageFilter< TInputImage >::DerivativeType = itk::RecursiveGaussianImageFilter<TInputImage, TInputImage>
private

Definition at line 160 of file rtkAmsterdamShroudImageFilter.h.

◆ GeometryPointer

template<class TInputImage >
using rtk::AmsterdamShroudImageFilter< TInputImage >::GeometryPointer = typename GeometryType::Pointer

Definition at line 97 of file rtkAmsterdamShroudImageFilter.h.

◆ GeometryType

template<class TInputImage >
using rtk::AmsterdamShroudImageFilter< TInputImage >::GeometryType = rtk::ThreeDCircularProjectionGeometry

Definition at line 96 of file rtkAmsterdamShroudImageFilter.h.

◆ NegativeType

template<class TInputImage >
using rtk::AmsterdamShroudImageFilter< TInputImage >::NegativeType = itk::MultiplyImageFilter<TInputImage, TInputImage, TInputImage>
private

Definition at line 161 of file rtkAmsterdamShroudImageFilter.h.

◆ PermuteType

template<class TInputImage >
using rtk::AmsterdamShroudImageFilter< TInputImage >::PermuteType = itk::PermuteAxesImageFilter<TOutputImage>
private

Definition at line 166 of file rtkAmsterdamShroudImageFilter.h.

◆ Pointer

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

Definition at line 90 of file rtkAmsterdamShroudImageFilter.h.

◆ PointType

template<class TInputImage >
using rtk::AmsterdamShroudImageFilter< TInputImage >::PointType = itk::Point<double, 3>

Definition at line 95 of file rtkAmsterdamShroudImageFilter.h.

◆ Self

template<class TInputImage >
using rtk::AmsterdamShroudImageFilter< TInputImage >::Self = AmsterdamShroudImageFilter

Standard class type alias.

Definition at line 88 of file rtkAmsterdamShroudImageFilter.h.

◆ SubtractType

template<class TInputImage >
using rtk::AmsterdamShroudImageFilter< TInputImage >::SubtractType = itk::SubtractImageFilter<TOutputImage, TOutputImage>
private

Definition at line 165 of file rtkAmsterdamShroudImageFilter.h.

◆ SumType

template<class TInputImage >
using rtk::AmsterdamShroudImageFilter< TInputImage >::SumType = itk::SumProjectionImageFilter<TInputImage, TOutputImage>
private

Definition at line 163 of file rtkAmsterdamShroudImageFilter.h.

◆ Superclass

template<class TInputImage >
using rtk::AmsterdamShroudImageFilter< TInputImage >::Superclass = itk::ImageToImageFilter<TInputImage, itk::Image<double, TInputImage::ImageDimension - 1> >

Definition at line 89 of file rtkAmsterdamShroudImageFilter.h.

◆ ThresholdType

template<class TInputImage >
using rtk::AmsterdamShroudImageFilter< TInputImage >::ThresholdType = itk::ThresholdImageFilter<TInputImage>
private

Definition at line 162 of file rtkAmsterdamShroudImageFilter.h.

◆ TOutputImage

template<class TInputImage >
using rtk::AmsterdamShroudImageFilter< TInputImage >::TOutputImage = itk::Image<double, TInputImage::ImageDimension - 1>

Convenient type alias.

Definition at line 94 of file rtkAmsterdamShroudImageFilter.h.

Constructor & Destructor Documentation

◆ AmsterdamShroudImageFilter()

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

◆ ~AmsterdamShroudImageFilter()

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

Member Function Documentation

◆ CreateAnother()

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

Reimplemented from itk::Object.

◆ CropOutsideProjectedBox()

template<class TInputImage >
virtual void rtk::AmsterdamShroudImageFilter< TInputImage >::CropOutsideProjectedBox ( )
protectedvirtual

Function that actually projects the 3D box defined by m_Corner1 and m_Corner2 and set everything outside to 0.

◆ GenerateData()

template<class TInputImage >
void rtk::AmsterdamShroudImageFilter< TInputImage >::GenerateData ( )
overrideprotectedvirtual

Single-threaded version of GenerateData. This filter delegates to other filters.

Reimplemented from itk::ImageSource< TOutputImage >.

◆ GenerateInputRequestedRegion()

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

Reimplemented from itk::ProcessObject.

◆ GenerateOutputInformation()

template<class TInputImage >
void rtk::AmsterdamShroudImageFilter< TInputImage >::GenerateOutputInformation ( )
overrideprotectedvirtual

Reimplemented from itk::ProcessObject.

◆ GetCorner1()

template<class TInputImage >
virtual PointType rtk::AmsterdamShroudImageFilter< TInputImage >::GetCorner1 ( )
virtual

3D clipbox corners for selecting part of the projections. Each corner is projected and rounded to the nearest 2D pixel and only those pixels within the two pixels are kept.

◆ GetCorner2()

template<class TInputImage >
virtual PointType rtk::AmsterdamShroudImageFilter< TInputImage >::GetCorner2 ( )
virtual

3D clipbox corners for selecting part of the projections. Each corner is projected and rounded to the nearest 2D pixel and only those pixels within the two pixels are kept.

◆ GetGeometry()

template<class TInputImage >
virtual const GeometryType* rtk::AmsterdamShroudImageFilter< TInputImage >::GetGeometry ( ) const
virtual

Get / Set the object pointer to projection geometry

◆ GetModifiableGeometry()

template<class TInputImage >
virtual GeometryType* rtk::AmsterdamShroudImageFilter< TInputImage >::GetModifiableGeometry ( )
virtual

Get / Set the object pointer to projection geometry

◆ GetNameOfClass()

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

Runtime information support.

Reimplemented from itk::ImageSource< TOutputImage >.

◆ GetUnsharpMaskSize()

template<class TInputImage >
virtual unsigned int rtk::AmsterdamShroudImageFilter< TInputImage >::GetUnsharpMaskSize ( )
virtual

Size parameter of the unsharp mask. This is the number of pixels along the time direction (X) along which it averages. The unsharp mask allows after computation of the shroud to enhance fast varying motions, e.g., breathing, and remove slow varying motions, e.g., rotation around the table. The default value is 17 pixels.

◆ New()

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

Standard New method.

◆ SetCorner1()

template<class TInputImage >
virtual void rtk::AmsterdamShroudImageFilter< TInputImage >::SetCorner1 ( PointType  _arg)
virtual

3D clipbox corners for selecting part of the projections. Each corner is projected and rounded to the nearest 2D pixel and only those pixels within the two pixels are kept.

◆ SetCorner2()

template<class TInputImage >
virtual void rtk::AmsterdamShroudImageFilter< TInputImage >::SetCorner2 ( PointType  _arg)
virtual

3D clipbox corners for selecting part of the projections. Each corner is projected and rounded to the nearest 2D pixel and only those pixels within the two pixels are kept.

◆ SetGeometry()

template<class TInputImage >
virtual void rtk::AmsterdamShroudImageFilter< TInputImage >::SetGeometry ( GeometryType _arg)
virtual

Get / Set the object pointer to projection geometry

◆ SetUnsharpMaskSize()

template<class TInputImage >
virtual void rtk::AmsterdamShroudImageFilter< TInputImage >::SetUnsharpMaskSize ( unsigned int  _arg)
virtual

Size parameter of the unsharp mask. This is the number of pixels along the time direction (X) along which it averages. The unsharp mask allows after computation of the shroud to enhance fast varying motions, e.g., breathing, and remove slow varying motions, e.g., rotation around the table. The default value is 17 pixels.

◆ UpdateUnsharpMaskKernel()

template<class TInputImage >
void rtk::AmsterdamShroudImageFilter< TInputImage >::UpdateUnsharpMaskKernel ( )
protected

Member Data Documentation

◆ ImageDimension

template<class TInputImage >
constexpr unsigned int rtk::AmsterdamShroudImageFilter< TInputImage >::ImageDimension = TOutputImage::ImageDimension
static

Definition at line 102 of file rtkAmsterdamShroudImageFilter.h.

◆ InputImageDimension

template<class TInputImage >
constexpr unsigned int rtk::AmsterdamShroudImageFilter< TInputImage >::InputImageDimension = TInputImage::ImageDimension
static

ImageDimension constants

Definition at line 100 of file rtkAmsterdamShroudImageFilter.h.

◆ m_ConvolutionFilter

template<class TInputImage >
ConvolutionType::Pointer rtk::AmsterdamShroudImageFilter< TInputImage >::m_ConvolutionFilter
private

Definition at line 172 of file rtkAmsterdamShroudImageFilter.h.

◆ m_Corner1

template<class TInputImage >
PointType rtk::AmsterdamShroudImageFilter< TInputImage >::m_Corner1 { 0. }
private

Definition at line 177 of file rtkAmsterdamShroudImageFilter.h.

◆ m_Corner2

template<class TInputImage >
PointType rtk::AmsterdamShroudImageFilter< TInputImage >::m_Corner2 { 0. }
private

Definition at line 178 of file rtkAmsterdamShroudImageFilter.h.

◆ m_DerivativeFilter

template<class TInputImage >
DerivativeType::Pointer rtk::AmsterdamShroudImageFilter< TInputImage >::m_DerivativeFilter
private

Definition at line 168 of file rtkAmsterdamShroudImageFilter.h.

◆ m_Geometry

template<class TInputImage >
GeometryPointer rtk::AmsterdamShroudImageFilter< TInputImage >::m_Geometry { nullptr }
private

Definition at line 176 of file rtkAmsterdamShroudImageFilter.h.

◆ m_NegativeFilter

template<class TInputImage >
NegativeType::Pointer rtk::AmsterdamShroudImageFilter< TInputImage >::m_NegativeFilter
private

Definition at line 169 of file rtkAmsterdamShroudImageFilter.h.

◆ m_PermuteFilter

template<class TInputImage >
PermuteType::Pointer rtk::AmsterdamShroudImageFilter< TInputImage >::m_PermuteFilter
private

Definition at line 174 of file rtkAmsterdamShroudImageFilter.h.

◆ m_SubtractFilter

template<class TInputImage >
SubtractType::Pointer rtk::AmsterdamShroudImageFilter< TInputImage >::m_SubtractFilter
private

Definition at line 173 of file rtkAmsterdamShroudImageFilter.h.

◆ m_SumFilter

template<class TInputImage >
SumType::Pointer rtk::AmsterdamShroudImageFilter< TInputImage >::m_SumFilter
private

Definition at line 171 of file rtkAmsterdamShroudImageFilter.h.

◆ m_ThresholdFilter

template<class TInputImage >
ThresholdType::Pointer rtk::AmsterdamShroudImageFilter< TInputImage >::m_ThresholdFilter
private

Definition at line 170 of file rtkAmsterdamShroudImageFilter.h.

◆ m_UnsharpMaskSize

template<class TInputImage >
unsigned int rtk::AmsterdamShroudImageFilter< TInputImage >::m_UnsharpMaskSize { 17 }
private

Definition at line 175 of file rtkAmsterdamShroudImageFilter.h.

◆ OutputImageDimension

template<class TInputImage >
constexpr unsigned int rtk::AmsterdamShroudImageFilter< TInputImage >::OutputImageDimension = TOutputImage::ImageDimension
static

Definition at line 101 of file rtkAmsterdamShroudImageFilter.h.


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