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::ImageProjector2D3D< IntensityType > Class Template Reference

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

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

Classes

struct  ImageProjectorThreadStruct
 

Public Types

typedef ImageProjector2D3D 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::SizeType InputImageSizeType
 
typedef InputImageType::PixelType InputImagePixelType
 
typedef InputImageType::SpacingType InputImageSpacingType
 
typedef InputImageType::PointType InputImagePointType
 
typedef InputImageType::IndexType InputImageIndexType
 
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
 
- 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 Member Functions

 ImageProjector2D3D ()
 
virtual ~ImageProjector2D3D (void)
 
void PrintSelf (std::ostream &os, Indent indent) const
 
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, 3 >, Image< IntensityType, 2 > >
 ImageProjectionBaseClass2D3D ()
 
virtual ~ImageProjectionBaseClass2D3D ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 

Static Protected Member Functions

static ITK_THREAD_RETURN_TYPE ImageProjectorThreaderCallback (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...
 
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...
 
- 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::ImageProjector2D3D< IntensityType >

Class to project a 3D image into 2D.

Member Typedef Documentation

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

Some convenient typedefs.

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

Standard class typedefs.

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

Constructor & Destructor Documentation

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

Member Function Documentation

template<class IntensityType = float>
virtual void itk::ImageProjector2D3D< 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::ImageProjector2D3D< 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::ImageProjector2D3D< IntensityType >::EnlargeOutputRequestedRegion ( DataObject *  output)
virtual
template<class IntensityType = float>
void itk::ImageProjector2D3D< IntensityType >::GenerateData ( )
protected

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

template<class IntensityType = float>
virtual void itk::ImageProjector2D3D< 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::ImageProjector2D3D< IntensityType >::GenerateOutputInformation ( void  )
virtual

ImageProjector2D3D produces a 2D ouput image which is a different resolution and with a different pixel spacing than its 3D input image (obviously). As such, ImageProjector2D3D 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::ImageProjector2D3D< 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>
static ITK_THREAD_RETURN_TYPE itk::ImageProjector2D3D< IntensityType >::ImageProjectorThreaderCallback ( 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>
itk::ImageProjector2D3D< IntensityType >::itkStaticConstMacro ( InputImageDimension  ,
unsigned  int,
 
)

ImageDimension enumeration

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

Method for creation through the object factory.

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

Set the origin of the output projected image.

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

Set the size in pixels of the output projected image.

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

Set the resolution in mm of the output projected image.

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

Set the ray integration threshold.

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

For debugging purposes, set single threaded execution.

template<class IntensityType = float>
int itk::ImageProjector2D3D< 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::ImageProjector2D3D< IntensityType >::ThreadedGenerateData ( const InputImageRegionType inputRegionForThread,
ThreadIdType  threadId 
)
protected

ImageProjector2D3D 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::ImageProjector2D3D< IntensityType >::m_FlagMultiThreadedExecution
protected

Flag to turn multithreading on or off.

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

The origin of the output projected image.

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

The size of the output projected image.

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

The resolution of the output projected image.

template<class IntensityType = float>
double itk::ImageProjector2D3D< 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: