NifTK
16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
|
Class to project a 3D image into 2D. More...
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 EulerAffineTransformType * | GetAffineTransform () |
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 |
Class to project a 3D image into 2D.
typedef SmartPointer<const Self> itk::CreateForwardBackwardProjectionMatrix< IntensityType >::ConstPointer |
typedef InputImageType::ConstPointer itk::CreateForwardBackwardProjectionMatrix< IntensityType >::InputImageConstPointer |
typedef InputImageType::PixelType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::InputImagePixelType |
typedef InputImageType::Pointer itk::CreateForwardBackwardProjectionMatrix< IntensityType >::InputImagePointer |
typedef InputImageType::RegionType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::InputImageRegionType |
typedef InputImageType::SizeType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::InputImageSizeType |
typedef InputImageType::SpacingType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::InputImageSpacingType |
typedef Image<IntensityType, 3> itk::CreateForwardBackwardProjectionMatrix< IntensityType >::InputImageType |
Some convenient typedefs.
typedef OutputImageType::IndexType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImageIndexType |
typedef OutputImageType::PixelType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImagePixelType |
typedef OutputImageType::Pointer itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImagePointer |
typedef OutputImageType::PointType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImagePointType |
typedef OutputImageType::RegionType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImageRegionType |
typedef OutputImageType::SizeType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImageSizeType |
typedef OutputImageType::SpacingType itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImageSpacingType |
typedef Image<IntensityType, 2> itk::CreateForwardBackwardProjectionMatrix< IntensityType >::OutputImageType |
typedef SmartPointer<Self> itk::CreateForwardBackwardProjectionMatrix< IntensityType >::Pointer |
typedef CreateForwardBackwardProjectionMatrix itk::CreateForwardBackwardProjectionMatrix< IntensityType >::Self |
Standard class typedefs.
typedef vnl_sparse_matrix<double> itk::CreateForwardBackwardProjectionMatrix< IntensityType >::SparseMatrixType |
Create a sparse matrix to store the forward projection matrix coefficients
typedef ImageProjectionBaseClass2D3D<Image< IntensityType, 3>, Image< IntensityType, 2> > itk::CreateForwardBackwardProjectionMatrix< IntensityType >::Superclass |
typedef itk::hash_map<int, VectorType>::const_iterator itk::CreateForwardBackwardProjectionMatrix< IntensityType >::VectorMapConstIterator |
typedef itk::hash_map<int, VectorType>::iterator itk::CreateForwardBackwardProjectionMatrix< IntensityType >::VectorMapIterator |
typedef itk::hash_map<int, VectorType> itk::CreateForwardBackwardProjectionMatrix< IntensityType >::VectorMapType |
Type of the map used to store the forward projection matrix per thread
typedef vnl_vector<double> itk::CreateForwardBackwardProjectionMatrix< IntensityType >::VectorType |
|
protected |
|
protected |
|
inlineprotectedvirtual |
|
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.
|
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.
|
virtual |
|
protected |
Single threaded execution, for debugging purposes ( call SetSingleThreadedExecution() )
|
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.
|
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.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::ImageProjectionBaseClass2D3D< Image< IntensityType, 3 >, Image< IntensityType, 2 > >.
itk::CreateForwardBackwardProjectionMatrix< IntensityType >::itkStaticConstMacro | ( | InputImageDimension | , |
unsigned | int, | ||
3 | |||
) |
ImageDimension enumeration
itk::CreateForwardBackwardProjectionMatrix< IntensityType >::itkStaticConstMacro | ( | OutputImageDimension | , |
unsigned | int, | ||
2 | |||
) |
|
static |
Method for creation through the object factory.
|
protected |
|
inline |
Set the origin of the output projected image.
|
inline |
Set the size in pixels of the output projected image.
|
inline |
Set the resolution in mm of the output projected image.
|
inline |
Set the ray integration threshold.
|
inline |
For debugging purposes, set single threaded execution.
|
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"
|
protected |
Flag to turn multithreading on or off.
|
protected |
The origin of the output projected image.
|
protected |
The size of the output projected image.
|
protected |
The resolution of the output projected image.
|
protected |
|
protected |
|
protected |
Create the backward projection vectors to store the vector per thread and all the threads
|
protected |
Create the vectors to store the vector per thread and all the threads
|
protected |
Create a sparse matrix to store the forward projection matrix coefficients
|
protected |
Create a sparse matrix to store the forward projection matrix coefficients
|
protected |
The threshold above which voxels along the ray path are integrated.