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

Base class for Image Reconstruction Methods. More...

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

Public Types

typedef
SimultaneousReconstructionAndRegistrationMethod 
Self
 
typedef ProcessObject Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef
itk::SimultaneousReconAndRegnUpdateCommand 
SimultaneousReconAndRegnUpdateCommandType
 
typedef
SimultaneousReconAndRegnUpdateCommand::Pointer 
SimultaneousReconAndRegnUpdateCommandPointer
 
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
SimultaneousReconstructionRegistrationMetric
< 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 SetSimultaneousReconAndRegnUpdateCommand (SimultaneousReconAndRegnUpdateCommandType *_arg)
 
virtual
SimultaneousReconAndRegnUpdateCommandType
GetSimultaneousReconAndRegnUpdateCommand ()
 
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 SetInputFixedImageProjections (InputProjectionVolumeType *imFixedProjections)
 Set the fixed image volume of projection images. More...
 
bool SetInputMovingImageProjections (InputProjectionVolumeType *imMovingProjections)
 Set the moving image 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
 
void SetFlagUpdateReconEstimateWithAverage (bool flag)
 
bool GetFlagUpdateReconEstimateWithAverage (void)
 
void SetNumberOfReconRegnIterations (unsigned int n)
 Set the number of combined registration-reconstruction iterations to perform. More...
 
void GetNumberOfReconRegnIterations (void)
 Get the number of combined registration-reconstruction iterations to perform. More...
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

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

Detailed Description

template<class IntensityType = double>
class itk::SimultaneousReconstructionAndRegistrationMethod< 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::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::ConstPointer
template<class IntensityType = double>
typedef InputProjectionVolumeType::Pointer itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::InputProjectionVolumePointer
template<class IntensityType = double>
typedef InputProjectionVolumeType::PointType itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::InputProjectionVolumePointType
template<class IntensityType = double>
typedef InputProjectionVolumeType::SpacingType itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::InputProjectionVolumeSpacingType
template<class IntensityType = double>
typedef Image<IntensityType, 3> itk::SimultaneousReconstructionAndRegistrationMethod< 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::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::MetricPointer
template<class IntensityType = double>
typedef SimultaneousReconstructionRegistrationMetric<IntensityType> itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::MetricType

The type of the metric.

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

Type of the optimizer.

template<class IntensityType = double>
typedef MetricType::ParametersType itk::SimultaneousReconstructionAndRegistrationMethod< 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::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::Pointer
template<class IntensityType = double>
typedef itk::ProjectionGeometry<IntensityType> itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::ProjectionGeometryType

The projection geometry type.

template<class IntensityType = double>
typedef ReconstructionOutputType::ConstPointer itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::ReconstructionOutputConstPointer
template<class IntensityType = double>
typedef ReconstructionOutputType::Pointer itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::ReconstructionOutputPointer
template<class IntensityType = double>
typedef ReconstructionType itk::SimultaneousReconstructionAndRegistrationMethod< 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::Pointer itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::ReconstructionPointer
template<class IntensityType = double>
typedef ReconstructionType::PointType itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::ReconstructionPointType
template<class IntensityType = double>
typedef ReconstructionType::SizeType itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::ReconstructionSizeType
template<class IntensityType = double>
typedef ReconstructionType::SpacingType itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::ReconstructionSpacingType
template<class IntensityType = double>
typedef Image<IntensityType, 3> itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::ReconstructionType
template<class IntensityType = double>
typedef SimultaneousReconstructionAndRegistrationMethod itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::Self

Standard class typedefs.

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

Constructor & Destructor Documentation

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

Member Function Documentation

template<class IntensityType = double>
void itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::GenerateData ( )
protected

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

template<class IntensityType = double>
virtual void itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::GenerateOutputInformation ( )
inlineprotectedvirtual

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

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

Run-time type information (and related methods).

template<class IntensityType = double>
bool itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::GetFlagUpdateReconEstimateWithAverage ( void  )
inline
template<class IntensityType = double>
InputProjectionVolumeType* itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::GetInput ( )

Returns the input image

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

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

template<class IntensityType = double>
void itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::GetNumberOfReconRegnIterations ( void  )
inline

Get the number of combined registration-reconstruction iterations to perform.

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

Returns the image resulting from the reconstruction process

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

Returns the image resulting from the reconstruction process

template<class IntensityType = double>
virtual SimultaneousReconAndRegnUpdateCommandType* itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::GetSimultaneousReconAndRegnUpdateCommand ( )
virtual
template<class IntensityType = double>
virtual void itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::Initialise ( )
throw (ExceptionObject
)
virtual

Initialise by setting the interconnects between the components.

template<class IntensityType = double>
virtual DataObjectPointer itk::SimultaneousReconstructionAndRegistrationMethod< 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::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::New ( )
static

Method for creation through the object factory.

template<class IntensityType = double>
void itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protected
template<class IntensityType = double>
void itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::SetFlagUpdateReconEstimateWithAverage ( bool  flag)
inline

Set/Get the 'update 3D reconstruction estimate volume with average' flag

template<class IntensityType = double>
bool itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::SetInputFixedImageProjections ( InputProjectionVolumeType imFixedProjections)

Set the fixed image volume of projection images.

template<class IntensityType = double>
bool itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::SetInputMovingImageProjections ( InputProjectionVolumeType imMovingProjections)

Set the moving image volume of projection images.

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

Set/Get the Metric.

template<class IntensityType = double>
void itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::SetNumberOfReconRegnIterations ( unsigned int  n)
inline

Set the number of combined registration-reconstruction iterations to perform.

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

Set/Get the Optimizer.

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

Set/Get the Projection Geometry.

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

Set the 3D reconstruction estimate volume.

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

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

template<class IntensityType = double>
void itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::SetReconstructedVolumeSpacing ( ReconstructionSpacingType reconSpacing)
inline
template<class IntensityType = double>
virtual void itk::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::SetSimultaneousReconAndRegnUpdateCommand ( SimultaneousReconAndRegnUpdateCommandType _arg)
virtual
template<class IntensityType = double>
void itk::SimultaneousReconstructionAndRegistrationMethod< 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::SimultaneousReconstructionAndRegistrationMethod< 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::SimultaneousReconstructionAndRegistrationMethod< IntensityType >::UpdateInitialParameters ( void  )

Update the initial optimisation parameters.

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

Update the 3D reconstruction estimate volume.

template<class IntensityType = double>
void itk::SimultaneousReconstructionAndRegistrationMethod< 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: