NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
itk::ForwardAndBackProjectionDifferenceFilter< IntensityType > Class Template Reference

Class to compute the difference between a reconstruction estimate and the target set of 2D projection images. More...

Inheritance diagram for itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >:
Inheritance graph
[legend]
Collaboration diagram for itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >:
Collaboration graph
[legend]

Public Types

typedef
ForwardAndBackProjectionDifferenceFilter 
Self
 
typedef ImageToImageFilter
< Image< IntensityType, 3 >
, Image< IntensityType, 3 > > 
Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef Image< IntensityType, 3 > InputVolumeType
 
typedef InputVolumeType::Pointer InputVolumePointer
 
typedef
InputVolumeType::ConstPointer 
InputVolumeConstPointer
 
typedef InputVolumeType::RegionType InputVolumeRegionType
 
typedef InputVolumeType::PixelType InputVolumePixelType
 
typedef InputVolumeType::SizeType InputVolumeSizeType
 
typedef
InputVolumeType::SpacingType 
InputVolumeSpacingType
 
typedef InputVolumeType::PointType InputVolumePointType
 
typedef Image< IntensityType, 3 > InputProjectionVolumeType
 
typedef
InputProjectionVolumeType::Pointer 
InputProjectionVolumePointer
 
typedef
InputProjectionVolumeType::RegionType 
InputProjectionVolumeRegionType
 
typedef
InputProjectionVolumeType::PixelType 
InputProjectionVolumePixelType
 
typedef
InputProjectionVolumeType::SizeType 
InputProjectionVolumeSizeType
 
typedef
InputProjectionVolumeType::SpacingType 
InputProjectionVolumeSpacingType
 
typedef
InputProjectionVolumeType::PointType 
InputProjectionVolumePointType
 
typedef Image< IntensityType, 3 > OutputBackProjectedDifferencesType
 
typedef
OutputBackProjectedDifferencesType::Pointer 
OutputBackProjectedDifferencesPointer
 
typedef
OutputBackProjectedDifferencesType::RegionType 
OutputBackProjectedDifferencesRegionType
 
typedef
OutputBackProjectedDifferencesType::PixelType 
OutputBackProjectedDifferencesPixelType
 
typedef
OutputBackProjectedDifferencesType::SizeType 
OutputBackProjectedDifferencesSizeType
 
typedef
OutputBackProjectedDifferencesType::SpacingType 
OutputBackProjectedDifferencesSpacingType
 
typedef
OutputBackProjectedDifferencesType::PointType 
OutputBackProjectedDifferencesPointType
 
typedef
itk::EulerAffineTransform
< double, 3, 3 > 
EulerAffineTransformType
 
typedef
EulerAffineTransformType::Pointer 
EulerAffineTransformPointer
 
typedef
itk::PerspectiveProjectionTransform
< double > 
PerspectiveProjectionTransformType
 
typedef
PerspectiveProjectionTransformType::Pointer 
PerspectiveProjectionTransformPointer
 
typedef
itk::ForwardImageProjector3Dto2D
< IntensityType > 
ForwardImageProjector3Dto2DType
 
typedef
ForwardImageProjector3Dto2DType::Pointer 
ForwardImageProjector3Dto2DPointer
 
typedef
ForwardImageProjector3Dto2DType::OutputImageType 
ForwardProjectorOutputImageType
 
typedef
ForwardProjectorOutputImageType::Pointer 
ForwardProjectorOutputImagePointer
 
typedef
ForwardProjectorOutputImageType::RegionType 
ForwardProjectorOutputImageRegionType
 
typedef
ForwardProjectorOutputImageType::SizeType 
ForwardProjectorOutputImageSizeType
 
typedef
ForwardProjectorOutputImageType::SpacingType 
ForwardProjectorOutputImageSpacingType
 
typedef
ForwardProjectorOutputImageType::PointType 
ForwardProjectorOutputImagePointType
 
typedef
ForwardProjectorOutputImageType::PixelType 
ForwardProjectorOutputImagePixelType
 
typedef
ForwardProjectorOutputImageType::IndexType 
ForwardProjectorOutputImageIndexType
 
typedef
itk::Subtract2DImageFromVolumeSliceFilter
< IntensityType > 
Subtract2DImageFromVolumeSliceFilterType
 
typedef
Subtract2DImageFromVolumeSliceFilterType::Pointer 
Subtract2DImageFromVolumeSliceFilterPointer
 
typedef
itk::BackwardImageProjector2Dto3D
< IntensityType > 
BackwardImageProjector2Dto3DType
 
typedef
BackwardImageProjector2Dto3DType::Pointer 
BackwardImageProjector2Dto3DPointer
 
typedef
itk::ProjectionGeometry
< IntensityType > 
ProjectionGeometryType
 
typedef
ProjectionGeometryType::Pointer 
ProjectionGeometryPointer
 

Public Member Functions

virtual const char * GetClassName () const
 
void SetInputVolume (InputVolumeType *im3D)
 Set the 3D reconstruction estimate volume input. More...
 
void SetInputProjectionVolume (InputProjectionVolumeType *im2D)
 Set the input 3D volume of projection image. More...
 
virtual void SetProjectionGeometry (ProjectionGeometryType *_arg)
 Get/Set the projection geometry. More...
 
virtual ProjectionGeometryTypeGetProjectionGeometry ()
 
InputVolumePointer GetPointerToInputVolume (void)
 
 itkStaticConstMacro (InputVolumeDimension, unsigned int, InputVolumeType::ImageDimension)
 
 itkStaticConstMacro (OutputBackProjectedDifferencesDimension, unsigned int, OutputBackProjectedDifferencesType::ImageDimension)
 
virtual void GenerateInputRequestedRegion ()
 
virtual void EnlargeOutputRequestedRegion (DataObject *output)
 
void Initialise (void)
 Initialise the image pipeline. More...
 
void ClearVolumePriorToNextBackProjection (void)
 Set the backprojection volume to zero prior to the next back-projection. More...
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 ForwardAndBackProjectionDifferenceFilter ()
 
virtual ~ForwardAndBackProjectionDifferenceFilter ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
void GenerateData ()
 The function called when the filter is executed. More...
 
virtual void VerifyInputInformation ()
 

Protected Attributes

bool m_FlagPipelineInitialised
 Flag indicating whether the filter has been initialised. More...
 
unsigned int m_NumberOfProjections
 The number of projection images. More...
 
ForwardImageProjector3Dto2DPointer m_ForwardProjector
 The forward-projector. More...
 
Subtract2DImageFromVolumeSliceFilterPointer m_SubtractProjectionFromEstimate
 A filter to perform the subtraction. More...
 
BackwardImageProjector2Dto3DPointer m_BackProjector
 The back-projector. More...
 
ProjectionGeometryPointer m_ProjectionGeometry
 The specific projection geometry to be used. More...
 

Detailed Description

template<class IntensityType = float>
class itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >

Class to compute the difference between a reconstruction estimate and the target set of 2D projection images.

This class performs a forward projection of the input volume, calculates the difference between this projection and the corresponding slice of the input volume of 2D projection images and back-projects these differences into the output 3D volume. This process is repeated for each slice of the input volume of 2D projection images and the back-projected differences are summed.

Member Typedef Documentation

template<class IntensityType = float>
typedef itk::BackwardImageProjector2Dto3D<IntensityType> itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::BackwardImageProjector2Dto3DType
template<class IntensityType = float>
typedef SmartPointer<const Self> itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::ConstPointer
template<class IntensityType = float>
typedef itk::EulerAffineTransform<double, 3, 3> itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::EulerAffineTransformType
template<class IntensityType = float>
typedef itk::ForwardImageProjector3Dto2D<IntensityType> itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::ForwardImageProjector3Dto2DType
template<class IntensityType = float>
typedef ForwardProjectorOutputImageType::Pointer itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::ForwardProjectorOutputImagePointer
template<class IntensityType = float>
typedef ForwardProjectorOutputImageType::PointType itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::ForwardProjectorOutputImagePointType
template<class IntensityType = float>
typedef ForwardProjectorOutputImageType::SpacingType itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::ForwardProjectorOutputImageSpacingType
template<class IntensityType = float>
typedef InputProjectionVolumeType::Pointer itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::InputProjectionVolumePointer
template<class IntensityType = float>
typedef InputProjectionVolumeType::PointType itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::InputProjectionVolumePointType
template<class IntensityType = float>
typedef InputProjectionVolumeType::SpacingType itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::InputProjectionVolumeSpacingType
template<class IntensityType = float>
typedef Image<IntensityType, 3> itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::InputProjectionVolumeType
template<class IntensityType = float>
typedef InputVolumeType::ConstPointer itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::InputVolumeConstPointer
template<class IntensityType = float>
typedef InputVolumeType::PixelType itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::InputVolumePixelType
template<class IntensityType = float>
typedef InputVolumeType::Pointer itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::InputVolumePointer
template<class IntensityType = float>
typedef InputVolumeType::PointType itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::InputVolumePointType
template<class IntensityType = float>
typedef InputVolumeType::RegionType itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::InputVolumeRegionType
template<class IntensityType = float>
typedef InputVolumeType::SizeType itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::InputVolumeSizeType
template<class IntensityType = float>
typedef InputVolumeType::SpacingType itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::InputVolumeSpacingType
template<class IntensityType = float>
typedef Image<IntensityType, 3> itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::InputVolumeType

Some convenient typedefs.

template<class IntensityType = float>
typedef OutputBackProjectedDifferencesType::Pointer itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::OutputBackProjectedDifferencesPointer
template<class IntensityType = float>
typedef OutputBackProjectedDifferencesType::PointType itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::OutputBackProjectedDifferencesPointType
template<class IntensityType = float>
typedef OutputBackProjectedDifferencesType::SpacingType itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::OutputBackProjectedDifferencesSpacingType
template<class IntensityType = float>
typedef Image<IntensityType, 3> itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::OutputBackProjectedDifferencesType
template<class IntensityType = float>
typedef itk::PerspectiveProjectionTransform<double> itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::PerspectiveProjectionTransformType
template<class IntensityType = float>
typedef SmartPointer<Self> itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::Pointer
template<class IntensityType = float>
typedef ProjectionGeometryType::Pointer itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::ProjectionGeometryPointer
template<class IntensityType = float>
typedef itk::ProjectionGeometry<IntensityType> itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::ProjectionGeometryType
template<class IntensityType = float>
typedef ForwardAndBackProjectionDifferenceFilter itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::Self

Standard class typedefs.

template<class IntensityType = float>
typedef ImageToImageFilter<Image< IntensityType, 3>, Image< IntensityType, 3> > itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::Superclass

Constructor & Destructor Documentation

template<class IntensityType = float>
itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::ForwardAndBackProjectionDifferenceFilter ( )
protected
template<class IntensityType = float>
virtual itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::~ForwardAndBackProjectionDifferenceFilter ( )
inlineprotectedvirtual

Member Function Documentation

template<class IntensityType = float>
void itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::ClearVolumePriorToNextBackProjection ( void  )
inline

Set the backprojection volume to zero prior to the next back-projection.

template<class IntensityType = float>
virtual void itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::EnlargeOutputRequestedRegion ( DataObject *  output)
virtual
template<class IntensityType = float>
void itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::GenerateData ( )
protected

The function called when the filter is executed.

template<class IntensityType = float>
virtual void itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::GenerateInputRequestedRegion ( )
virtual

Rather than calculate the input requested region for a particular back-projection (which might take longer than the actual projection), we simply set the input requested region to the entire area of the current 3D volume.

See also
ProcessObject::GenerateInputRequestedRegion()
template<class IntensityType = float>
virtual const char* itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

template<class IntensityType = float>
InputVolumePointer itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::GetPointerToInputVolume ( void  )

Return a pointer to the input volume

template<class IntensityType = float>
virtual ProjectionGeometryType* itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::GetProjectionGeometry ( )
virtual
template<class IntensityType = float>
void itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::Initialise ( void  )

Initialise the image pipeline.

template<class IntensityType = float>
itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::itkStaticConstMacro ( InputVolumeDimension  ,
unsigned  int,
InputVolumeType::ImageDimension   
)

ImageDimension enumeration

template<class IntensityType = float>
itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::itkStaticConstMacro ( OutputBackProjectedDifferencesDimension  ,
unsigned  int,
OutputBackProjectedDifferencesType::ImageDimension   
)
template<class IntensityType = float>
static Pointer itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::New ( )
static

Method for creation through the object factory.

template<class IntensityType = float>
void itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protected
template<class IntensityType = float>
void itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::SetInputProjectionVolume ( InputProjectionVolumeType im2D)

Set the input 3D volume of projection image.

template<class IntensityType = float>
void itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::SetInputVolume ( InputVolumeType im3D)

Set the 3D reconstruction estimate volume input.

template<class IntensityType = float>
virtual void itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::SetProjectionGeometry ( ProjectionGeometryType _arg)
virtual

Get/Set the projection geometry.

template<class IntensityType = float>
virtual void itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::VerifyInputInformation ( )
inlineprotectedvirtual

We don't expect the input volume and projection images to be in the same space so we override this method

Member Data Documentation

template<class IntensityType = float>
BackwardImageProjector2Dto3DPointer itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::m_BackProjector
protected

The back-projector.

template<class IntensityType = float>
bool itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::m_FlagPipelineInitialised
protected

Flag indicating whether the filter has been initialised.

template<class IntensityType = float>
ForwardImageProjector3Dto2DPointer itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::m_ForwardProjector
protected

The forward-projector.

template<class IntensityType = float>
unsigned int itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::m_NumberOfProjections
protected

The number of projection images.

template<class IntensityType = float>
ProjectionGeometryPointer itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::m_ProjectionGeometry
protected

The specific projection geometry to be used.

template<class IntensityType = float>
Subtract2DImageFromVolumeSliceFilterPointer itk::ForwardAndBackProjectionDifferenceFilter< IntensityType >::m_SubtractProjectionFromEstimate
protected

A filter to perform the subtraction.


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