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

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

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

Public Types

typedef
CreateForwardBackwardProjectionMatrix 
Self
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef
ImageProjectionBaseClass2D3D
< Image< IntensityType, 3 >
, Image< IntensityType, 2 > > 
Superclass
 
typedef Image< IntensityType, 3 > InputImageType
 
typedef InputImageType::Pointer InputImagePointer
 
typedef
InputImageType::ConstPointer 
InputImageConstPointer
 
typedef InputImageType::RegionType InputImageRegionType
 
typedef InputImageType::PixelType InputImagePixelType
 
typedef InputImageType::SizeType InputImageSizeType
 
typedef InputImageType::SpacingType InputImageSpacingType
 
typedef Image< IntensityType, 2 > OutputImageType
 
typedef OutputImageType::Pointer OutputImagePointer
 
typedef OutputImageType::RegionType OutputImageRegionType
 
typedef OutputImageType::SizeType OutputImageSizeType
 
typedef
OutputImageType::SpacingType 
OutputImageSpacingType
 
typedef OutputImageType::PointType OutputImagePointType
 
typedef OutputImageType::PixelType OutputImagePixelType
 
typedef OutputImageType::IndexType OutputImageIndexType
 
typedef vnl_sparse_matrix< double > SparseMatrixType
 
typedef vnl_vector< double > VectorType
 
typedef itk::hash_map< int,
VectorType
VectorMapType
 
typedef itk::hash_map< int,
VectorType >::iterator 
VectorMapIterator
 
typedef itk::hash_map< int,
VectorType >::const_iterator 
VectorMapConstIterator
 
- Public Types inherited from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 3 >, Image< IntensityType, 2 > >
typedef
ImageProjectionBaseClass2D3D 
Self
 
typedef ImageToImageFilter
< Image< IntensityType, 3 >
, Image< IntensityType, 2 > > 
Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef Image< IntensityType, 3 > InputImageType
 
typedef InputImageType::Pointer InputImagePointer
 
typedef InputImageType::RegionType InputImageRegionType
 
typedef InputImageType::PixelType InputImagePixelType
 
typedef Image< IntensityType, 2 > 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, 3)
 
 itkStaticConstMacro (OutputImageDimension, unsigned int, 2)
 
virtual void GenerateOutputInformation (void)
 
virtual void GenerateInputRequestedRegion (void)
 
virtual void EnlargeOutputRequestedRegion (DataObject *output)
 
void SetProjectedImageSize (OutputImageSizeType &outImageSize)
 Set the size in pixels of the output projected image. More...
 
void SetProjectedImageSpacing (OutputImageSpacingType &outImageSpacing)
 Set the resolution in mm of the output projected image. More...
 
void SetProjectedImageOrigin (OutputImagePointType &outImageOrigin)
 Set the origin of the output projected image. More...
 
void SetRayIntegrationThreshold (double threshold)
 Set the ray integration threshold. More...
 
void SetSingleThreadedExecution (void)
 For debugging purposes, set single threaded execution. More...
 
- Public Member Functions inherited from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 3 >, Image< IntensityType, 2 > >
 itkStaticConstMacro (InputImageDimension, unsigned int, Image< IntensityType, 3 >::ImageDimension)
 
 itkStaticConstMacro (OutputImageDimension, unsigned int, Image< IntensityType, 2 >::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, 3 >, Image< IntensityType, 2 > >
static Pointer New ()
 

Protected Types

enum  TraversalDirection {
  UNDEFINED_DIRECTION =0, TRANSVERSE_IN_X, TRANSVERSE_IN_Y, TRANSVERSE_IN_Z,
  LAST_DIRECTION
}
 

Protected Member Functions

 CreateForwardBackwardProjectionMatrix ()
 
virtual ~CreateForwardBackwardProjectionMatrix (void)
 
void PrintSelf (std::ostream &os, Indent indent) const
 
virtual void BeforeThreadedGenerateData (void)
 
virtual void AfterThreadedGenerateData (void)
 
void GenerateData ()
 
void ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId)
 
- Protected Member Functions inherited from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 3 >, Image< IntensityType, 2 > >
 ImageProjectionBaseClass2D3D ()
 
virtual ~ImageProjectionBaseClass2D3D ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 

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...
 
double m_Threshold
 The threshold above which voxels along the ray path are integrated. More...
 
bool m_FlagMultiThreadedExecution
 Flag to turn multithreading on or off. More...
 
SparseMatrixType m_sparseForwardProjMatrix
 
SparseMatrixType m_sparseBackwardProjMatrix
 
VectorType m_outputVectorPerThread
 
VectorMapType m_outputVectorAllThread
 
VectorType m_outputVectorBackProjPerThread
 
VectorMapType m_outputVectorBackProjAllThread
 
- Protected Attributes inherited from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 3 >, Image< IntensityType, 2 > >
EulerAffineTransformType::Pointer m_AffineTransform
 The affine transform. More...
 
PerspectiveProjectionTransformType::Pointer m_PerspectiveTransform
 

Detailed Description

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

Class to project a 3D image into 2D.

Member Typedef Documentation

template<class IntensityType = float>
typedef SmartPointer<const Self> itk::CreateForwardBackwardProjectionMatrix< IntensityType >::ConstPointer
template<class IntensityType = float>
typedef InputImageType::ConstPointer itk::CreateForwardBackwardProjectionMatrix< IntensityType >::InputImageConstPointer
template<class IntensityType = float>
typedef InputImageType::PixelType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::InputImagePixelType
template<class IntensityType = float>
typedef InputImageType::Pointer itk::CreateForwardBackwardProjectionMatrix< IntensityType >::InputImagePointer
template<class IntensityType = float>
typedef InputImageType::RegionType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::InputImageRegionType
template<class IntensityType = float>
typedef InputImageType::SizeType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::InputImageSizeType
template<class IntensityType = float>
typedef InputImageType::SpacingType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::InputImageSpacingType
template<class IntensityType = float>
typedef Image<IntensityType, 3> itk::CreateForwardBackwardProjectionMatrix< IntensityType >::InputImageType

Some convenient typedefs.

template<class IntensityType = float>
typedef OutputImageType::IndexType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImageIndexType
template<class IntensityType = float>
typedef OutputImageType::PixelType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImagePixelType
template<class IntensityType = float>
typedef OutputImageType::Pointer itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImagePointer
template<class IntensityType = float>
typedef OutputImageType::PointType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImagePointType
template<class IntensityType = float>
typedef OutputImageType::RegionType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImageRegionType
template<class IntensityType = float>
typedef OutputImageType::SizeType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImageSizeType
template<class IntensityType = float>
typedef OutputImageType::SpacingType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImageSpacingType
template<class IntensityType = float>
typedef Image<IntensityType, 2> itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImageType
template<class IntensityType = float>
typedef SmartPointer<Self> itk::CreateForwardBackwardProjectionMatrix< IntensityType >::Pointer
template<class IntensityType = float>
typedef CreateForwardBackwardProjectionMatrix itk::CreateForwardBackwardProjectionMatrix< IntensityType >::Self

Standard class typedefs.

template<class IntensityType = float>
typedef vnl_sparse_matrix<double> itk::CreateForwardBackwardProjectionMatrix< IntensityType >::SparseMatrixType

Create a sparse matrix to store the forward projection matrix coefficients

template<class IntensityType = float>
typedef ImageProjectionBaseClass2D3D<Image< IntensityType, 3>, Image< IntensityType, 2> > itk::CreateForwardBackwardProjectionMatrix< IntensityType >::Superclass
template<class IntensityType = float>
typedef itk::hash_map<int, VectorType>::const_iterator itk::CreateForwardBackwardProjectionMatrix< IntensityType >::VectorMapConstIterator
template<class IntensityType = float>
typedef itk::hash_map<int, VectorType>::iterator itk::CreateForwardBackwardProjectionMatrix< IntensityType >::VectorMapIterator
template<class IntensityType = float>
typedef itk::hash_map<int, VectorType> itk::CreateForwardBackwardProjectionMatrix< IntensityType >::VectorMapType

Type of the map used to store the forward projection matrix per thread

template<class IntensityType = float>
typedef vnl_vector<double> itk::CreateForwardBackwardProjectionMatrix< IntensityType >::VectorType

Member Enumeration Documentation

template<class IntensityType = float>
enum itk::CreateForwardBackwardProjectionMatrix::TraversalDirection
protected

The ray is traversed by stepping in the axial direction that enables the greatest number of planes in the volume to be intercepted.

Enumerator
UNDEFINED_DIRECTION 

Undefined.

TRANSVERSE_IN_X 

x

TRANSVERSE_IN_Y 

y

TRANSVERSE_IN_Z 

z

LAST_DIRECTION 

Constructor & Destructor Documentation

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

Member Function Documentation

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

If an imaging filter needs to perform processing after all processing threads have completed, the filter can can provide an implementation for AfterThreadedGenerateData(). The execution flow in the default GenerateData() method will be: 1) Allocate the output buffer 2) Call BeforeThreadedGenerateData() 3) Spawn threads, calling ThreadedGenerateData() in each thread. 4) Call AfterThreadedGenerateData() Note that this flow of control is only available if a filter provides a ThreadedGenerateData() method and NOT a GenerateData() method.

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

If an imaging filter needs to perform processing after the buffer has been allocated but before threads are spawned, the filter can can provide an implementation for BeforeThreadedGenerateData(). The execution flow in the default GenerateData() method will be: 1) Allocate the output buffer 2) Call BeforeThreadedGenerateData() 3) Spawn threads, calling ThreadedGenerateData() in each thread. 4) Call AfterThreadedGenerateData() Note that this flow of control is only available if a filter provides a ThreadedGenerateData() method and NOT a GenerateData() method.

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

Single threaded execution, for debugging purposes ( call SetSingleThreadedExecution() )

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

Rather than calculate the input requested region for a particular projection (which might take longer than the actual projection), we simply set the input requested region to the entire 3D 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::CreateForwardBackwardProjectionMatrix< IntensityType >::GenerateOutputInformation ( void  )
virtual

CreateForwardBackwardProjectionMatrix produces a 2D output image which is a different resolution and with a different pixel spacing than its 3D input image (obviously). As such, CreateForwardBackwardProjectionMatrix 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::CreateForwardBackwardProjectionMatrix< IntensityType >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

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

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

ImageDimension enumeration

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

Method for creation through the object factory.

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

Set the origin of the output projected image.

template<class IntensityType = float>
void itk::CreateForwardBackwardProjectionMatrix< IntensityType >::SetProjectedImageSize ( OutputImageSizeType outImageSize)
inline

Set the size in pixels of the output projected image.

template<class IntensityType = float>
void itk::CreateForwardBackwardProjectionMatrix< IntensityType >::SetProjectedImageSpacing ( OutputImageSpacingType outImageSpacing)
inline

Set the resolution in mm of the output projected image.

template<class IntensityType = float>
void itk::CreateForwardBackwardProjectionMatrix< IntensityType >::SetRayIntegrationThreshold ( double  threshold)
inline

Set the ray integration threshold.

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

For debugging purposes, set single threaded execution.

template<class IntensityType = float>
void itk::CreateForwardBackwardProjectionMatrix< IntensityType >::ThreadedGenerateData ( const OutputImageRegionType outputRegionForThread,
ThreadIdType  threadId 
)
protected

CreateForwardBackwardProjectionMatrix can be implemented as a multithreaded filter. Therefore, this implementation provides a ThreadedGenerateData() routine which is called for each processing thread. The output image data is allocated automatically by the superclass prior to calling ThreadedGenerateData(). ThreadedGenerateData can only write to the portion of the output image specified by the parameter "outputRegionForThread"

See also
ImageToImageFilter::ThreadedGenerateData(), ImageToImageFilter::GenerateData()

Member Data Documentation

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

Flag to turn multithreading on or off.

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

The origin of the output projected image.

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

The size of the output projected image.

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

The resolution of the output projected image.

template<class IntensityType = float>
VectorMapType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::m_outputVectorAllThread
protected
template<class IntensityType = float>
VectorMapType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::m_outputVectorBackProjAllThread
protected
template<class IntensityType = float>
VectorType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::m_outputVectorBackProjPerThread
protected

Create the backward projection vectors to store the vector per thread and all the threads

template<class IntensityType = float>
VectorType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::m_outputVectorPerThread
protected

Create the vectors to store the vector per thread and all the threads

template<class IntensityType = float>
SparseMatrixType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::m_sparseBackwardProjMatrix
protected

Create a sparse matrix to store the forward projection matrix coefficients

template<class IntensityType = float>
SparseMatrixType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::m_sparseForwardProjMatrix
protected

Create a sparse matrix to store the forward projection matrix coefficients

template<class IntensityType = float>
double itk::CreateForwardBackwardProjectionMatrix< IntensityType >::m_Threshold
protected

The threshold above which voxels along the ray path are integrated.


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