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

Class to project a 3D image into 2D. More...

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

Classes

struct  BackwardImageProjectorThreadStruct
 

Public Types

typedef
BackwardImageProjector2Dto3D 
Self
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef
ImageProjectionBaseClass2D3D
< Image< IntensityType, 2 >
, Image< IntensityType, 3 > > 
Superclass
 
typedef Image< IntensityType, 2 > InputImageType
 
typedef InputImageType::Pointer InputImagePointer
 
typedef
InputImageType::ConstPointer 
InputImageConstPointer
 
typedef InputImageType::RegionType InputImageRegionType
 
typedef InputImageType::SizeType InputImageSizeType
 
typedef InputImageType::SpacingType InputImageSpacingType
 
typedef InputImageType::PointType InputImagePointType
 
typedef InputImageType::IndexType InputImageIndexType
 
typedef InputImageType::PixelType InputImagePixelType
 
typedef Image< IntensityType, 3 > OutputImageType
 
typedef OutputImageType::Pointer OutputImagePointer
 
typedef
OutputImageType::ConstPointer 
OutputImageConstPointer
 
typedef OutputImageType::RegionType OutputImageRegionType
 
typedef OutputImageType::SizeType OutputImageSizeType
 
typedef
OutputImageType::SpacingType 
OutputImageSpacingType
 
typedef OutputImageType::PixelType OutputImagePixelType
 
typedef OutputImageType::PointType OutputImagePointType
 
- Public Types inherited from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 2 >, Image< IntensityType, 3 > >
typedef
ImageProjectionBaseClass2D3D 
Self
 
typedef ImageToImageFilter
< Image< IntensityType, 2 >
, Image< IntensityType, 3 > > 
Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef Image< IntensityType, 2 > InputImageType
 
typedef InputImageType::Pointer InputImagePointer
 
typedef InputImageType::RegionType InputImageRegionType
 
typedef InputImageType::PixelType InputImagePixelType
 
typedef Image< IntensityType, 3 > OutputImageType
 
typedef OutputImageType::Pointer OutputImagePointer
 
typedef OutputImageType::RegionType OutputImageRegionType
 
typedef OutputImageType::PixelType OutputImagePixelType
 
typedef EulerAffineTransform
< double, 3, 3 > 
EulerAffineTransformType
 
typedef
PerspectiveProjectionTransform
< double > 
PerspectiveProjectionTransformType
 

Public Member Functions

virtual const char * GetClassName () const
 
 itkStaticConstMacro (InputImageDimension, unsigned int, 2)
 
 itkStaticConstMacro (OutputImageDimension, unsigned int, 3)
 
virtual void GenerateOutputInformation ()
 
virtual void GenerateInputRequestedRegion ()
 
virtual void EnlargeOutputRequestedRegion (DataObject *output)
 
void SetBackProjectedImageSize (OutputImageSizeType &outImageSize)
 Set the size in voxels of the output back-projected image. More...
 
void SetBackProjectedImageSpacing (OutputImageSpacingType &outImageSpacing)
 Set the resolution in mm of the output back-projected image. More...
 
void SetBackProjectedImageOrigin (OutputImagePointType &outImageOrigin)
 Set the origin of the output back-projected image. More...
 
void SetSingleThreadedExecution (void)
 For debugging purposes, set single threaded execution. More...
 
void ClearVolumePriorToNextBackProjection (void)
 Set the backprojection volume to zero prior to the next back-projection. More...
 
- Public Member Functions inherited from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 2 >, Image< IntensityType, 3 > >
 itkStaticConstMacro (InputImageDimension, unsigned int, Image< IntensityType, 2 >::ImageDimension)
 
 itkStaticConstMacro (OutputImageDimension, unsigned int, Image< IntensityType, 3 >::ImageDimension)
 
virtual void SetAffineTransform (EulerAffineTransformType *_arg)
 Set the affine transformation. More...
 
virtual EulerAffineTransformTypeGetAffineTransform ()
 Get the affine transformation. More...
 
virtual void SetPerspectiveTransform (PerspectiveProjectionTransformType *_arg)
 Set the perspective transformation. More...
 
virtual
PerspectiveProjectionTransformType
GetPerspectiveTransform ()
 Get the perspective transformation. More...
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 2 >, Image< IntensityType, 3 > >
static Pointer New ()
 

Protected Member Functions

 BackwardImageProjector2Dto3D ()
 
virtual ~BackwardImageProjector2Dto3D ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
void ClearVolume (void)
 Do we need to set the volume to zero? More...
 
virtual void BeforeThreadedGenerateData (void)
 
virtual void AfterThreadedGenerateData (void)
 
void GenerateData ()
 
void ThreadedGenerateData (const InputImageRegionType &inputRegionForThread, ThreadIdType threadId)
 
int SplitRequestedRegion (int i, int num, InputImageRegionType &splitRegion)
 
- Protected Member Functions inherited from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 2 >, Image< IntensityType, 3 > >
 ImageProjectionBaseClass2D3D ()
 
virtual ~ImageProjectionBaseClass2D3D ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 

Static Protected Member Functions

static ITK_THREAD_RETURN_TYPE BackwardImageProjectorThreaderCallback (void *arg)
 

Protected Attributes

OutputImageSizeType m_OutputImageSize
 The size of the output projected image. More...
 
OutputImageSpacingType m_OutputImageSpacing
 The resolution of the output projected image. More...
 
OutputImagePointType m_OutputImageOrigin
 The origin of the output projected image. More...
 
bool m_FlagMultiThreadedExecution
 Flag to turn multithreading on or off. More...
 
bool m_ClearBackProjectedVolume
 Flag that back-projected volume should be filled with zeros. More...
 
OutputImagePointer m_VoxelRayCount
 
- Protected Attributes inherited from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 2 >, Image< IntensityType, 3 > >
EulerAffineTransformType::Pointer m_AffineTransform
 The affine transform. More...
 
PerspectiveProjectionTransformType::Pointer m_PerspectiveTransform
 

Detailed Description

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

Class to project a 3D image into 2D.

Member Typedef Documentation

template<class IntensityType = float>
typedef SmartPointer<const Self> itk::BackwardImageProjector2Dto3D< IntensityType >::ConstPointer
template<class IntensityType = float>
typedef InputImageType::ConstPointer itk::BackwardImageProjector2Dto3D< IntensityType >::InputImageConstPointer
template<class IntensityType = float>
typedef InputImageType::IndexType itk::BackwardImageProjector2Dto3D< IntensityType >::InputImageIndexType
template<class IntensityType = float>
typedef InputImageType::PixelType itk::BackwardImageProjector2Dto3D< IntensityType >::InputImagePixelType
template<class IntensityType = float>
typedef InputImageType::Pointer itk::BackwardImageProjector2Dto3D< IntensityType >::InputImagePointer
template<class IntensityType = float>
typedef InputImageType::PointType itk::BackwardImageProjector2Dto3D< IntensityType >::InputImagePointType
template<class IntensityType = float>
typedef InputImageType::RegionType itk::BackwardImageProjector2Dto3D< IntensityType >::InputImageRegionType
template<class IntensityType = float>
typedef InputImageType::SizeType itk::BackwardImageProjector2Dto3D< IntensityType >::InputImageSizeType
template<class IntensityType = float>
typedef InputImageType::SpacingType itk::BackwardImageProjector2Dto3D< IntensityType >::InputImageSpacingType
template<class IntensityType = float>
typedef Image<IntensityType, 2> itk::BackwardImageProjector2Dto3D< IntensityType >::InputImageType

Some convenient typedefs.

template<class IntensityType = float>
typedef OutputImageType::ConstPointer itk::BackwardImageProjector2Dto3D< IntensityType >::OutputImageConstPointer
template<class IntensityType = float>
typedef OutputImageType::PixelType itk::BackwardImageProjector2Dto3D< IntensityType >::OutputImagePixelType
template<class IntensityType = float>
typedef OutputImageType::Pointer itk::BackwardImageProjector2Dto3D< IntensityType >::OutputImagePointer
template<class IntensityType = float>
typedef OutputImageType::PointType itk::BackwardImageProjector2Dto3D< IntensityType >::OutputImagePointType
template<class IntensityType = float>
typedef OutputImageType::RegionType itk::BackwardImageProjector2Dto3D< IntensityType >::OutputImageRegionType
template<class IntensityType = float>
typedef OutputImageType::SizeType itk::BackwardImageProjector2Dto3D< IntensityType >::OutputImageSizeType
template<class IntensityType = float>
typedef OutputImageType::SpacingType itk::BackwardImageProjector2Dto3D< IntensityType >::OutputImageSpacingType
template<class IntensityType = float>
typedef Image<IntensityType, 3> itk::BackwardImageProjector2Dto3D< IntensityType >::OutputImageType
template<class IntensityType = float>
typedef SmartPointer<Self> itk::BackwardImageProjector2Dto3D< IntensityType >::Pointer
template<class IntensityType = float>
typedef BackwardImageProjector2Dto3D itk::BackwardImageProjector2Dto3D< IntensityType >::Self

Standard class typedefs.

template<class IntensityType = float>
typedef ImageProjectionBaseClass2D3D<Image< IntensityType, 2>, Image< IntensityType, 3> > itk::BackwardImageProjector2Dto3D< IntensityType >::Superclass

Constructor & Destructor Documentation

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

Member Function Documentation

template<class IntensityType = float>
virtual void itk::BackwardImageProjector2Dto3D< IntensityType >::AfterThreadedGenerateData ( void  )
protectedvirtual

Perform some operation immediately after the back projection.

template<class IntensityType = float>
static ITK_THREAD_RETURN_TYPE itk::BackwardImageProjector2Dto3D< IntensityType >::BackwardImageProjectorThreaderCallback ( void arg)
staticprotected

Static function used as a "callback" by the MultiThreader. The threading library will call this routine for each thread, which will delegate the control to ThreadedGenerateData().

template<class IntensityType = float>
virtual void itk::BackwardImageProjector2Dto3D< IntensityType >::BeforeThreadedGenerateData ( void  )
protectedvirtual

Initialise data prior to back projection (such as filling the back-projected volume with zeros).

template<class IntensityType = float>
void itk::BackwardImageProjector2Dto3D< IntensityType >::ClearVolume ( void  )
protected

Do we need to set the volume to zero?

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

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

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

The version in ImageSource is overloaded here because we want to thread execution by splitting the input 2D image not the output 3D volume.

template<class IntensityType = float>
virtual void itk::BackwardImageProjector2Dto3D< 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 2D input image region. Therefore needs to provide an implementation for GenerateInputRequestedRegion() in order to inform the pipeline execution model.

See also
ProcessObject::GenerateInputRequestedRegion()
template<class IntensityType = float>
virtual void itk::BackwardImageProjector2Dto3D< IntensityType >::GenerateOutputInformation ( )
virtual

BackwardImageProjector2Dto3D produces a 3D ouput image which is a different resolution and with a different pixel spacing than its 2D input image (obviously). As such, BackwardImageProjector3Dto2D needs to provide an implementation for GenerateOutputInformation() in order to inform the pipeline execution model. The original documentation of this method is below.

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

Run-time type information (and related methods).

Reimplemented from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 2 >, Image< IntensityType, 3 > >.

template<class IntensityType = float>
itk::BackwardImageProjector2Dto3D< IntensityType >::itkStaticConstMacro ( InputImageDimension  ,
unsigned  int,
 
)

ImageDimension enumeration

template<class IntensityType = float>
itk::BackwardImageProjector2Dto3D< IntensityType >::itkStaticConstMacro ( OutputImageDimension  ,
unsigned  int,
 
)
template<class IntensityType = float>
static Pointer itk::BackwardImageProjector2Dto3D< IntensityType >::New ( )
static

Method for creation through the object factory.

template<class IntensityType = float>
void itk::BackwardImageProjector2Dto3D< IntensityType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protected
template<class IntensityType = float>
void itk::BackwardImageProjector2Dto3D< IntensityType >::SetBackProjectedImageOrigin ( OutputImagePointType outImageOrigin)
inline

Set the origin of the output back-projected image.

template<class IntensityType = float>
void itk::BackwardImageProjector2Dto3D< IntensityType >::SetBackProjectedImageSize ( OutputImageSizeType outImageSize)
inline

Set the size in voxels of the output back-projected image.

template<class IntensityType = float>
void itk::BackwardImageProjector2Dto3D< IntensityType >::SetBackProjectedImageSpacing ( OutputImageSpacingType outImageSpacing)
inline

Set the resolution in mm of the output back-projected image.

template<class IntensityType = float>
void itk::BackwardImageProjector2Dto3D< IntensityType >::SetSingleThreadedExecution ( void  )
inline

For debugging purposes, set single threaded execution.

template<class IntensityType = float>
int itk::BackwardImageProjector2Dto3D< IntensityType >::SplitRequestedRegion ( int  i,
int  num,
InputImageRegionType splitRegion 
)
protected

Split the output's RequestedRegion into "num" pieces, returning region "i" as "splitRegion". This method is called "num" times. The regions must not overlap. The method returns the number of pieces that the routine is capable of splitting the input RequestedRegion, i.e. return value is less than or equal to "num".

template<class IntensityType = float>
void itk::BackwardImageProjector2Dto3D< IntensityType >::ThreadedGenerateData ( const InputImageRegionType inputRegionForThread,
ThreadIdType  threadId 
)
protected

This function is modified to thread based on the input 2D image

Member Data Documentation

template<class IntensityType = float>
bool itk::BackwardImageProjector2Dto3D< IntensityType >::m_ClearBackProjectedVolume
protected

Flag that back-projected volume should be filled with zeros.

template<class IntensityType = float>
bool itk::BackwardImageProjector2Dto3D< IntensityType >::m_FlagMultiThreadedExecution
protected

Flag to turn multithreading on or off.

template<class IntensityType = float>
OutputImagePointType itk::BackwardImageProjector2Dto3D< IntensityType >::m_OutputImageOrigin
protected

The origin of the output projected image.

template<class IntensityType = float>
OutputImageSizeType itk::BackwardImageProjector2Dto3D< IntensityType >::m_OutputImageSize
protected

The size of the output projected image.

template<class IntensityType = float>
OutputImageSpacingType itk::BackwardImageProjector2Dto3D< IntensityType >::m_OutputImageSpacing
protected

The resolution of the output projected image.

template<class IntensityType = float>
OutputImagePointer itk::BackwardImageProjector2Dto3D< IntensityType >::m_VoxelRayCount
protected

A volume equal in size to the back-projected volume which keeps a count of the number of rays contributing to each voxel in the back-projected volume.


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