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

Base class for Image Reconstruction Methods. More...

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

Public Types

typedef ImageReconstructionMethod Self
 
typedef ProcessObject Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef
itk::ReconstructionUpdateCommand 
ReconstructionUpdateCommandType
 
typedef
ReconstructionUpdateCommand::Pointer 
ReconstructionUpdateCommandPointer
 
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 > ReconstructionType
 
typedef ReconstructionType::Pointer ReconstructionPointer
 
typedef
ReconstructionType::RegionType 
ReconstructionRegionType
 
typedef
ReconstructionType::PixelType 
ReconstructionPixelType
 
typedef
ReconstructionType::SizeType 
ReconstructionSizeType
 
typedef
ReconstructionType::SpacingType 
ReconstructionSpacingType
 
typedef
ReconstructionType::PointType 
ReconstructionPointType
 
typedef
ReconstructionType::IndexType 
ReconstructionIndexType
 
typedef
SingleValuedNonLinearOptimizer 
OptimizerType
 Type of the optimizer. More...
 
typedef OptimizerType::Pointer OptimizerPointer
 
typedef
ImageReconstructionMetric
< IntensityType > 
MetricType
 The type of the metric. More...
 
typedef MetricType::Pointer MetricPointer
 
typedef
itk::ProjectionGeometry
< IntensityType > 
ProjectionGeometryType
 The projection geometry type. More...
 
typedef
ProjectionGeometryType::Pointer 
ProjectionGeometryPointer
 
typedef MetricType::ParametersType ParametersType
 
typedef ReconstructionType ReconstructionOutputType
 
typedef
ReconstructionOutputType::Pointer 
ReconstructionOutputPointer
 
typedef
ReconstructionOutputType::ConstPointer 
ReconstructionOutputConstPointer
 

Public Member Functions

virtual const char * GetClassName () const
 
virtual void SetOptimizer (OptimizerType *_arg)
 
virtual OptimizerTypeGetOptimizer ()
 
virtual void SetMetric (MetricType *_arg)
 
virtual MetricTypeGetMetric ()
 
virtual void SetProjectionGeometry (ProjectionGeometryType *_arg)
 
virtual ProjectionGeometryTypeGetProjectionGeometry ()
 
virtual void SetReconstructionUpdateCommand (ReconstructionUpdateCommandType *_arg)
 
virtual
ReconstructionUpdateCommandType
GetReconstructionUpdateCommand ()
 
void SetReconEstimate (ReconstructionType *im3D)
 Set the 3D reconstruction estimate volume. More...
 
void UpdateReconstructionEstimate (ReconstructionType *im3D)
 Update the 3D reconstruction estimate volume. More...
 
void UpdateReconstructionEstimateWithAverage (ReconstructionType *im3D)
 
void UpdateInitialParameters (void)
 Update the initial optimisation parameters. More...
 
bool SetInputProjectionVolume (InputProjectionVolumeType *im2D)
 Set the input volume of projection images. More...
 
void SetReconstructedVolumeSize (ReconstructionSizeType &reconSize)
 Set the size, resolution and origin of the reconstructed image. More...
 
void SetReconstructedVolumeSpacing (ReconstructionSpacingType &reconSpacing)
 
void SetReconstructedVolumeOrigin (ReconstructionPointType &reconOrigin)
 
virtual void Initialise () throw (ExceptionObject)
 
InputProjectionVolumeTypeGetInput ()
 
ReconstructionOutputTypeGetOutput ()
 
ReconstructionOutputTypeGetReconstructedVolume () const
 
virtual DataObjectPointer MakeOutput (unsigned int idx)
 
unsigned long GetMTime () const override
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 ImageReconstructionMethod ()
 
virtual ~ImageReconstructionMethod ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
virtual void GenerateOutputInformation () override
 
void StartReconstruction (void)
 
void StartOptimization (void)
 
void GenerateData () override
 

Detailed Description

template<class IntensityType = double>
class itk::ImageReconstructionMethod< IntensityType >

Base class for Image Reconstruction Methods.

This class defines the generic interface for a reconstruction method.

This class is templated over the type of the images to be reconstructed.

The method uses a generic optimizer that can be selected at run-time. The only restriction for the optimizer is that it should be able to operate in single-valued cost functions given that the metrics used to compare images provide a single value as output.

Member Typedef Documentation

template<class IntensityType = double>
typedef SmartPointer<const Self> itk::ImageReconstructionMethod< IntensityType >::ConstPointer
template<class IntensityType = double>
typedef InputProjectionVolumeType::PixelType itk::ImageReconstructionMethod< IntensityType >::InputProjectionVolumePixelType
template<class IntensityType = double>
typedef InputProjectionVolumeType::Pointer itk::ImageReconstructionMethod< IntensityType >::InputProjectionVolumePointer
template<class IntensityType = double>
typedef InputProjectionVolumeType::PointType itk::ImageReconstructionMethod< IntensityType >::InputProjectionVolumePointType
template<class IntensityType = double>
typedef InputProjectionVolumeType::RegionType itk::ImageReconstructionMethod< IntensityType >::InputProjectionVolumeRegionType
template<class IntensityType = double>
typedef InputProjectionVolumeType::SizeType itk::ImageReconstructionMethod< IntensityType >::InputProjectionVolumeSizeType
template<class IntensityType = double>
typedef InputProjectionVolumeType::SpacingType itk::ImageReconstructionMethod< IntensityType >::InputProjectionVolumeSpacingType
template<class IntensityType = double>
typedef Image<IntensityType, 3> itk::ImageReconstructionMethod< IntensityType >::InputProjectionVolumeType

Intensity type has to be double because the optimizer expects the parameters (intensities) to be double

template<class IntensityType = double>
typedef MetricType::Pointer itk::ImageReconstructionMethod< IntensityType >::MetricPointer
template<class IntensityType = double>
typedef ImageReconstructionMetric<IntensityType> itk::ImageReconstructionMethod< IntensityType >::MetricType

The type of the metric.

template<class IntensityType = double>
typedef OptimizerType::Pointer itk::ImageReconstructionMethod< IntensityType >::OptimizerPointer
template<class IntensityType = double>
typedef SingleValuedNonLinearOptimizer itk::ImageReconstructionMethod< IntensityType >::OptimizerType

Type of the optimizer.

template<class IntensityType = double>
typedef MetricType::ParametersType itk::ImageReconstructionMethod< IntensityType >::ParametersType

Type of the optimisation parameters (reconstructed intensities). This is the same type used to represent the search space of the optimization algorithm

template<class IntensityType = double>
typedef SmartPointer<Self> itk::ImageReconstructionMethod< IntensityType >::Pointer
template<class IntensityType = double>
typedef ProjectionGeometryType::Pointer itk::ImageReconstructionMethod< IntensityType >::ProjectionGeometryPointer
template<class IntensityType = double>
typedef itk::ProjectionGeometry<IntensityType> itk::ImageReconstructionMethod< IntensityType >::ProjectionGeometryType

The projection geometry type.

template<class IntensityType = double>
typedef ReconstructionType::IndexType itk::ImageReconstructionMethod< IntensityType >::ReconstructionIndexType
template<class IntensityType = double>
typedef ReconstructionOutputType::ConstPointer itk::ImageReconstructionMethod< IntensityType >::ReconstructionOutputConstPointer
template<class IntensityType = double>
typedef ReconstructionOutputType::Pointer itk::ImageReconstructionMethod< IntensityType >::ReconstructionOutputPointer
template<class IntensityType = double>
typedef ReconstructionType itk::ImageReconstructionMethod< IntensityType >::ReconstructionOutputType

Type for the output: Using Decorator pattern for enabling the reconstructed volume to be passed in the data pipeline

template<class IntensityType = double>
typedef ReconstructionType::PixelType itk::ImageReconstructionMethod< IntensityType >::ReconstructionPixelType
template<class IntensityType = double>
typedef ReconstructionType::Pointer itk::ImageReconstructionMethod< IntensityType >::ReconstructionPointer
template<class IntensityType = double>
typedef ReconstructionType::PointType itk::ImageReconstructionMethod< IntensityType >::ReconstructionPointType
template<class IntensityType = double>
typedef ReconstructionType::RegionType itk::ImageReconstructionMethod< IntensityType >::ReconstructionRegionType
template<class IntensityType = double>
typedef ReconstructionType::SizeType itk::ImageReconstructionMethod< IntensityType >::ReconstructionSizeType
template<class IntensityType = double>
typedef ReconstructionType::SpacingType itk::ImageReconstructionMethod< IntensityType >::ReconstructionSpacingType
template<class IntensityType = double>
typedef Image<IntensityType, 3> itk::ImageReconstructionMethod< IntensityType >::ReconstructionType
template<class IntensityType = double>
typedef ReconstructionUpdateCommand::Pointer itk::ImageReconstructionMethod< IntensityType >::ReconstructionUpdateCommandPointer
template<class IntensityType = double>
typedef itk::ReconstructionUpdateCommand itk::ImageReconstructionMethod< IntensityType >::ReconstructionUpdateCommandType
template<class IntensityType = double>
typedef ImageReconstructionMethod itk::ImageReconstructionMethod< IntensityType >::Self

Standard class typedefs.

template<class IntensityType = double>
typedef ProcessObject itk::ImageReconstructionMethod< IntensityType >::Superclass

Constructor & Destructor Documentation

template<class IntensityType = double>
itk::ImageReconstructionMethod< IntensityType >::ImageReconstructionMethod ( )
protected
template<class IntensityType = double>
virtual itk::ImageReconstructionMethod< IntensityType >::~ImageReconstructionMethod ( )
inlineprotectedvirtual

Member Function Documentation

template<class IntensityType = double>
void itk::ImageReconstructionMethod< IntensityType >::GenerateData ( )
overrideprotected

Method invoked by the pipeline in order to trigger the computation of the reconstruction.

template<class IntensityType = double>
virtual void itk::ImageReconstructionMethod< IntensityType >::GenerateOutputInformation ( )
inlineoverrideprotectedvirtual

We avoid propagating the input region to the output by overloading this function

template<class IntensityType = double>
virtual const char* itk::ImageReconstructionMethod< IntensityType >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

template<class IntensityType = double>
InputProjectionVolumeType* itk::ImageReconstructionMethod< IntensityType >::GetInput ( )

Returns the input image

template<class IntensityType = double>
virtual MetricType* itk::ImageReconstructionMethod< IntensityType >::GetMetric ( )
virtual
template<class IntensityType = double>
unsigned long itk::ImageReconstructionMethod< IntensityType >::GetMTime ( ) const
override

Method to return the latest modified time of this object or any of its cached ivars

template<class IntensityType = double>
virtual OptimizerType* itk::ImageReconstructionMethod< IntensityType >::GetOptimizer ( )
virtual
template<class IntensityType = double>
ReconstructionOutputType* itk::ImageReconstructionMethod< IntensityType >::GetOutput ( )

Returns the image resulting from the reconstruction process

template<class IntensityType = double>
virtual ProjectionGeometryType* itk::ImageReconstructionMethod< IntensityType >::GetProjectionGeometry ( )
virtual
template<class IntensityType = double>
ReconstructionOutputType* itk::ImageReconstructionMethod< IntensityType >::GetReconstructedVolume ( ) const

Returns the image resulting from the reconstruction process

template<class IntensityType = double>
virtual ReconstructionUpdateCommandType* itk::ImageReconstructionMethod< IntensityType >::GetReconstructionUpdateCommand ( )
virtual
template<class IntensityType = double>
virtual void itk::ImageReconstructionMethod< IntensityType >::Initialise ( )
throw (ExceptionObject
)
virtual

Initialise by setting the interconnects between the components.

template<class IntensityType = double>
virtual DataObjectPointer itk::ImageReconstructionMethod< IntensityType >::MakeOutput ( unsigned int  idx)
virtual

Make a DataObject of the correct type to be used as the specified output.

template<class IntensityType = double>
static Pointer itk::ImageReconstructionMethod< IntensityType >::New ( )
static

Method for creation through the object factory.

template<class IntensityType = double>
void itk::ImageReconstructionMethod< IntensityType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
overrideprotected
template<class IntensityType = double>
bool itk::ImageReconstructionMethod< IntensityType >::SetInputProjectionVolume ( InputProjectionVolumeType im2D)

Set the input volume of projection images.

template<class IntensityType = double>
virtual void itk::ImageReconstructionMethod< IntensityType >::SetMetric ( MetricType _arg)
virtual

Set/Get the Metric.

template<class IntensityType = double>
virtual void itk::ImageReconstructionMethod< IntensityType >::SetOptimizer ( OptimizerType _arg)
virtual

Set/Get the Optimizer.

template<class IntensityType = double>
virtual void itk::ImageReconstructionMethod< IntensityType >::SetProjectionGeometry ( ProjectionGeometryType _arg)
virtual

Set/Get the Projection Geometry.

template<class IntensityType = double>
void itk::ImageReconstructionMethod< IntensityType >::SetReconEstimate ( ReconstructionType im3D)

Set the 3D reconstruction estimate volume.

template<class IntensityType = double>
void itk::ImageReconstructionMethod< IntensityType >::SetReconstructedVolumeOrigin ( ReconstructionPointType reconOrigin)
inline
template<class IntensityType = double>
void itk::ImageReconstructionMethod< IntensityType >::SetReconstructedVolumeSize ( ReconstructionSizeType reconSize)
inline

Set the size, resolution and origin of the reconstructed image.

template<class IntensityType = double>
void itk::ImageReconstructionMethod< IntensityType >::SetReconstructedVolumeSpacing ( ReconstructionSpacingType reconSpacing)
inline
template<class IntensityType = double>
virtual void itk::ImageReconstructionMethod< IntensityType >::SetReconstructionUpdateCommand ( ReconstructionUpdateCommandType _arg)
virtual
template<class IntensityType = double>
void itk::ImageReconstructionMethod< IntensityType >::StartOptimization ( void  )
protected

Method that initiates the optimization process. This method should not be called directly by the users. Instead, this method is intended to be invoked internally by the StartReconstruction() which is in turn invoked by the Update() method.

template<class IntensityType = double>
void itk::ImageReconstructionMethod< IntensityType >::StartReconstruction ( void  )
protected

Method that initiates the reconstruction. This will Initialise and ensure that all inputs the registration needs are in place, via a call to Initialise() will then start the optimization process via a call to StartOptimization()

template<class IntensityType = double>
void itk::ImageReconstructionMethod< IntensityType >::UpdateInitialParameters ( void  )

Update the initial optimisation parameters.

template<class IntensityType = double>
void itk::ImageReconstructionMethod< IntensityType >::UpdateReconstructionEstimate ( ReconstructionType im3D)

Update the 3D reconstruction estimate volume.

template<class IntensityType = double>
void itk::ImageReconstructionMethod< IntensityType >::UpdateReconstructionEstimateWithAverage ( ReconstructionType im3D)

Update the 3D reconstruction estimate volume with the average of the existing estimate and the supplied volume.


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