RTK  2.0.1
Reconstruction Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType > Class Template Reference

#include <rtkIterativeConeBeamReconstructionFilter.h>

+ Inheritance diagram for rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >:
+ Collaboration diagram for rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >:

Public Types

using BackProjectionFilterType = rtk::BackProjectionImageFilter< ProjectionStackType, VolumeType >
 
using BackProjectionPointerType = typename BackProjectionFilterType::Pointer
 
enum  BackProjectionType {
  BP_UNKNOWN =-1,
  BP_VOXELBASED =0,
  BP_JOSEPH =1,
  BP_CUDAVOXELBASED =2,
  BP_CUDARAYCAST =4,
  BP_JOSEPHATTENUATED =5
}
 
using ConstPointer = itk::SmartPointer< const Self >
 
using ForwardProjectionFilterType = rtk::ForwardProjectionImageFilter< VolumeType, ProjectionStackType >
 
using ForwardProjectionPointerType = typename ForwardProjectionFilterType::Pointer
 
enum  ForwardProjectionType {
  FP_UNKNOWN =-1,
  FP_JOSEPH =0,
  FP_CUDARAYCAST =2,
  FP_JOSEPHATTENUATED =3
}
 
using Pointer = itk::SmartPointer< Self >
 
using Self = IterativeConeBeamReconstructionFilter
 
using Superclass = itk::ImageToImageFilter< TOutputImage, TOutputImage >
 
using VolumeType = ProjectionStackType
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual const char * GetNameOfClass () const
 
virtual void SetForwardProjectionFilter (ForwardProjectionType fwtype)
 
ForwardProjectionType GetForwardProjectionFilter ()
 
virtual void SetBackProjectionFilter (BackProjectionType bptype)
 
BackProjectionType GetBackProjectionFilter ()
 

Static Public Member Functions

static Pointer New ()
 

Protected Types

using CPUImageType = typename itk::Image< typename ProjectionStackType::PixelType, ProjectionStackType::ImageDimension >
 
template<typename ImageType >
using EnableCudaScalarAndVectorType = typename std::enable_if< !std::is_same< CPUImageType, ImageType >::value &&std::is_same< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float >::value &&(itk::PixelTraits< typename ImageType::PixelType >::Dimension==1||itk::PixelTraits< typename ImageType::PixelType >::Dimension==2||itk::PixelTraits< typename ImageType::PixelType >::Dimension==3) >::type
 
template<typename ImageType >
using DisableCudaScalarAndVectorType = typename std::enable_if< std::is_same< CPUImageType, ImageType >::value||!std::is_same< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float >::value||(itk::PixelTraits< typename ImageType::PixelType >::Dimension!=1 &&itk::PixelTraits< typename ImageType::PixelType >::Dimension!=2 &&itk::PixelTraits< typename ImageType::PixelType >::Dimension!=3) >::type
 
template<typename ImageType >
using EnableCudaScalarType = typename std::enable_if< !std::is_same< CPUImageType, ImageType >::value &&std::is_same< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float >::value &&itk::PixelTraits< typename ImageType::PixelType >::Dimension==1 >::type
 
template<typename ImageType >
using DisableCudaScalarType = typename std::enable_if< std::is_same< CPUImageType, ImageType >::value||!std::is_same< typename itk::PixelTraits< typename ImageType::PixelType >::ValueType, float >::value||itk::PixelTraits< typename ImageType::PixelType >::Dimension!=1 >::type
 
template<typename ImageType >
using EnableVectorType = typename std::enable_if< itk::PixelTraits< typename ImageType::PixelType >::Dimension!=1 >::type
 
template<typename ImageType >
using DisableVectorType = typename std::enable_if< itk::PixelTraits< typename ImageType::PixelType >::Dimension==1 >::type
 

Protected Member Functions

virtual BackProjectionPointerType InstantiateBackProjectionFilter (int bptype)
 
template<typename ImageType , EnableCudaScalarAndVectorType< ImageType > * = nullptr>
BackProjectionPointerType InstantiateCudaBackProjection ()
 
template<typename ImageType , DisableCudaScalarAndVectorType< ImageType > * = nullptr>
BackProjectionPointerType InstantiateCudaBackProjection ()
 
template<typename ImageType , EnableCudaScalarAndVectorType< ImageType > * = nullptr>
ForwardProjectionPointerType InstantiateCudaForwardProjection ()
 
template<typename ImageType , DisableCudaScalarAndVectorType< ImageType > * = nullptr>
ForwardProjectionPointerType InstantiateCudaForwardProjection ()
 
template<typename ImageType , EnableCudaScalarType< ImageType > * = nullptr>
BackProjectionPointerType InstantiateCudaRayCastBackProjection ()
 
template<typename ImageType , DisableCudaScalarType< ImageType > * = nullptr>
BackProjectionPointerType InstantiateCudaRayCastBackProjection ()
 
virtual ForwardProjectionPointerType InstantiateForwardProjectionFilter (int fwtype)
 
template<typename ImageType , EnableVectorType< ImageType > * = nullptr>
BackProjectionPointerType InstantiateJosephBackAttenuatedProjection ()
 
template<typename ImageType , DisableVectorType< ImageType > * = nullptr>
BackProjectionPointerType InstantiateJosephBackAttenuatedProjection ()
 
template<typename ImageType , EnableVectorType< ImageType > * = nullptr>
ForwardProjectionPointerType InstantiateJosephForwardAttenuatedProjection ()
 
template<typename ImageType , DisableVectorType< ImageType > * = nullptr>
ForwardProjectionPointerType InstantiateJosephForwardAttenuatedProjection ()
 
 IterativeConeBeamReconstructionFilter ()
 
 ~IterativeConeBeamReconstructionFilter () override=default
 

Protected Attributes

BackProjectionType m_CurrentBackProjectionConfiguration
 
ForwardProjectionType m_CurrentForwardProjectionConfiguration
 
std::default_random_engine m_DefaultRandomEngine = std::default_random_engine{}
 

Detailed Description

template<class TOutputImage, class ProjectionStackType = TOutputImage>
class rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >

Mother class for cone beam reconstruction filters which need runtime selection of their forward and back projection filters.

IterativeConeBeamReconstructionFilter defines methods to set the forward and/or back projection filter(s) of a IterativeConeBeamReconstructionFilter at runtime

Author
Cyril Mory

Definition at line 56 of file rtkIterativeConeBeamReconstructionFilter.h.

Member Typedef Documentation

template<class TOutputImage, class ProjectionStackType = TOutputImage>
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::BackProjectionFilterType = rtk::BackProjectionImageFilter< ProjectionStackType, VolumeType >

Definition at line 83 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::BackProjectionPointerType = typename BackProjectionFilterType::Pointer

Definition at line 85 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::ConstPointer = itk::SmartPointer<const Self>

Definition at line 66 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::CPUImageType = typename itk::Image<typename ProjectionStackType::PixelType, ProjectionStackType::ImageDimension>
protected

Instantiate forward and back projectors using SFINAE.

Definition at line 122 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType >
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::DisableCudaScalarAndVectorType = typename std::enable_if< std::is_same< CPUImageType, ImageType >::value || !std::is_same< typename itk::PixelTraits<typename ImageType::PixelType>::ValueType, float >::value || ( itk::PixelTraits<typename ImageType::PixelType>::Dimension != 1 && itk::PixelTraits<typename ImageType::PixelType>::Dimension != 2 && itk::PixelTraits<typename ImageType::PixelType>::Dimension != 3 ) >::type
protected

Instantiate forward and back projectors using SFINAE.

Definition at line 134 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType >
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::DisableCudaScalarType = typename std::enable_if< std::is_same< CPUImageType, ImageType >::value || !std::is_same< typename itk::PixelTraits<typename ImageType::PixelType>::ValueType, float >::value || itk::PixelTraits<typename ImageType::PixelType>::Dimension != 1 >::type
protected

Instantiate forward and back projectors using SFINAE.

Definition at line 142 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType >
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::DisableVectorType = typename std::enable_if< itk::PixelTraits<typename ImageType::PixelType>::Dimension == 1 >::type
protected

Instantiate forward and back projectors using SFINAE.

Definition at line 146 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType >
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::EnableCudaScalarAndVectorType = typename std::enable_if< !std::is_same< CPUImageType, ImageType >::value && std::is_same< typename itk::PixelTraits<typename ImageType::PixelType>::ValueType, float >::value && ( itk::PixelTraits<typename ImageType::PixelType>::Dimension == 1 || itk::PixelTraits<typename ImageType::PixelType>::Dimension == 2 || itk::PixelTraits<typename ImageType::PixelType>::Dimension == 3 ) >::type
protected

Instantiate forward and back projectors using SFINAE.

Definition at line 128 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType >
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::EnableCudaScalarType = typename std::enable_if< !std::is_same< CPUImageType, ImageType >::value && std::is_same< typename itk::PixelTraits<typename ImageType::PixelType>::ValueType, float >::value && itk::PixelTraits<typename ImageType::PixelType>::Dimension == 1 >::type
protected

Instantiate forward and back projectors using SFINAE.

Definition at line 138 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType >
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::EnableVectorType = typename std::enable_if< itk::PixelTraits<typename ImageType::PixelType>::Dimension != 1 >::type
protected

Instantiate forward and back projectors using SFINAE.

Definition at line 144 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::ForwardProjectionFilterType = rtk::ForwardProjectionImageFilter< VolumeType, ProjectionStackType >

Typedefs of each subfilter of this composite filter

Definition at line 82 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::ForwardProjectionPointerType = typename ForwardProjectionFilterType::Pointer

Definition at line 84 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::Pointer = itk::SmartPointer<Self>

Definition at line 65 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::Self = IterativeConeBeamReconstructionFilter

Standard class type alias.

Definition at line 63 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::Superclass = itk::ImageToImageFilter<TOutputImage, TOutputImage>

Definition at line 64 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
using rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::VolumeType = ProjectionStackType

Convenient type alias

Definition at line 69 of file rtkIterativeConeBeamReconstructionFilter.h.

Member Enumeration Documentation

template<class TOutputImage, class ProjectionStackType = TOutputImage>
enum rtk::IterativeConeBeamReconstructionFilter::BackProjectionType
Enumerator
BP_UNKNOWN 
BP_VOXELBASED 
BP_JOSEPH 
BP_CUDAVOXELBASED 
BP_CUDARAYCAST 
BP_JOSEPHATTENUATED 

Definition at line 74 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
enum rtk::IterativeConeBeamReconstructionFilter::ForwardProjectionType
Enumerator
FP_UNKNOWN 
FP_JOSEPH 
FP_CUDARAYCAST 
FP_JOSEPHATTENUATED 

Definition at line 70 of file rtkIterativeConeBeamReconstructionFilter.h.

Constructor & Destructor Documentation

template<class TOutputImage, class ProjectionStackType = TOutputImage>
rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::IterativeConeBeamReconstructionFilter ( )
protected
template<class TOutputImage, class ProjectionStackType = TOutputImage>
rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::~IterativeConeBeamReconstructionFilter ( )
overrideprotecteddefault

Member Function Documentation

template<class TOutputImage, class ProjectionStackType = TOutputImage>
virtual::itk::LightObject::Pointer rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::CreateAnother ( ) const
virtual

Reimplemented from itk::Object.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
BackProjectionType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::GetBackProjectionFilter ( )
inline

Accessors to forward and backprojection types.

Definition at line 97 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
ForwardProjectionType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::GetForwardProjectionFilter ( )
inline

Accessors to forward and backprojection types.

Definition at line 95 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
virtual const char* rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::GetNameOfClass ( ) const
virtual
template<class TOutputImage, class ProjectionStackType = TOutputImage>
virtual BackProjectionPointerType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::InstantiateBackProjectionFilter ( int  bptype)
protectedvirtual

Creates and returns an instance of the back projection filter. To be used in SetBackProjectionFilter.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType , EnableCudaScalarAndVectorType< ImageType > * = nullptr>
BackProjectionPointerType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::InstantiateCudaBackProjection ( )
inlineprotected

Definition at line 186 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType , DisableCudaScalarAndVectorType< ImageType > * = nullptr>
BackProjectionPointerType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::InstantiateCudaBackProjection ( )
inlineprotected

Definition at line 197 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType , EnableCudaScalarAndVectorType< ImageType > * = nullptr>
ForwardProjectionPointerType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::InstantiateCudaForwardProjection ( )
inlineprotected

Definition at line 150 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType , DisableCudaScalarAndVectorType< ImageType > * = nullptr>
ForwardProjectionPointerType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::InstantiateCudaForwardProjection ( )
inlineprotected

Definition at line 161 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType , EnableCudaScalarType< ImageType > * = nullptr>
BackProjectionPointerType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::InstantiateCudaRayCastBackProjection ( )
inlineprotected

Definition at line 205 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType , DisableCudaScalarType< ImageType > * = nullptr>
BackProjectionPointerType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::InstantiateCudaRayCastBackProjection ( )
inlineprotected

Definition at line 216 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
virtual ForwardProjectionPointerType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::InstantiateForwardProjectionFilter ( int  fwtype)
protectedvirtual

Creates and returns an instance of the forward projection filter. To be used in SetForwardProjectionFilter.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType , EnableVectorType< ImageType > * = nullptr>
BackProjectionPointerType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::InstantiateJosephBackAttenuatedProjection ( )
inlineprotected

Definition at line 224 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType , DisableVectorType< ImageType > * = nullptr>
BackProjectionPointerType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::InstantiateJosephBackAttenuatedProjection ( )
inlineprotected

Definition at line 232 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType , EnableVectorType< ImageType > * = nullptr>
ForwardProjectionPointerType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::InstantiateJosephForwardAttenuatedProjection ( )
inlineprotected

Definition at line 169 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
template<typename ImageType , DisableVectorType< ImageType > * = nullptr>
ForwardProjectionPointerType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::InstantiateJosephForwardAttenuatedProjection ( )
inlineprotected

Definition at line 177 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
static Pointer rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::New ( )
static

Standard New method.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
virtual void rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::SetBackProjectionFilter ( BackProjectionType  bptype)
virtual

Accessors to forward and backprojection types.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
virtual void rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::SetForwardProjectionFilter ( ForwardProjectionType  fwtype)
virtual

Accessors to forward and backprojection types.

Member Data Documentation

template<class TOutputImage, class ProjectionStackType = TOutputImage>
BackProjectionType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::m_CurrentBackProjectionConfiguration
protected

Definition at line 115 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
ForwardProjectionType rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::m_CurrentForwardProjectionConfiguration
protected

Internal variables storing the current forward and back projection methods

Definition at line 114 of file rtkIterativeConeBeamReconstructionFilter.h.

template<class TOutputImage, class ProjectionStackType = TOutputImage>
std::default_random_engine rtk::IterativeConeBeamReconstructionFilter< TOutputImage, ProjectionStackType >::m_DefaultRandomEngine = std::default_random_engine{}
protected

A random generating engine is needed to use the C++17 comliant code for std::shuffle.

Definition at line 119 of file rtkIterativeConeBeamReconstructionFilter.h.


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