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

Initial implementation of Seb Ourselin's block matching algorithm. More...

Inheritance diagram for itk::BlockMatchingMethod< TImageType, TScalarType >:
Inheritance graph
[legend]
Collaboration diagram for itk::BlockMatchingMethod< TImageType, TScalarType >:
Collaboration graph
[legend]

Classes

class  ResidualHeapDataType
 So we can have an ordered list of points, based on the residual between transformed fixed and moving. More...
 
class  VarianceHeapDataType
 So we can have an ordered list of indexes, based on variance of a block. More...
 

Public Types

typedef BlockMatchingMethod Self
 
typedef
MaskedImageRegistrationMethod
< TImageType > 
Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef TImageType ImageType
 
typedef ImageType::SizeType ImageSizeType
 
typedef ImageType::PixelType ImagePixelType
 
typedef ImageType::SpacingType ImageSpacingType
 
typedef ImageType::RegionType ImageRegionType
 
typedef ImageType::IndexType ImageIndexType
 
typedef ResampleImageFilter
< TImageType, TImageType > 
ResampleFilterType
 
typedef ResampleFilterType::Pointer ResampleFilterPointer
 
typedef
RegionOfInterestImageFilter
< TImageType, TImageType > 
RegionOfInterestFilterType
 
typedef
RegionOfInterestFilterType::Pointer 
RegionOfInterestFilterPointer
 
typedef
itk::Statistics::ImageToListSampleAdaptor
< ImageType
ImageTypeListAdaptorType
 
typedef
ImageTypeListAdaptorType::Pointer 
ImageTypeListAdaptorPointer
 
typedef
itk::Statistics::CovarianceSampleFilter
< ImageTypeListAdaptorType
ImageTypeCovarianceSampleFilterType
 
typedef
ImageTypeCovarianceSampleFilterType::Pointer 
ImageTypeCovarianceSampleFilterPointer
 
typedef Image< float,
TImageType::ImageDimension > 
GradientImageType
 
typedef
GradientMagnitudeImageFilter
< TImageType,
GradientImageType
GradientMagnitudeFilterType
 
typedef
GradientMagnitudeFilterType::Pointer 
GradientMagnitudeFilterPointer
 
typedef
itk::Statistics::ImageToListSampleAdaptor
< GradientImageType
GradientImageTypeListAdaptorType
 
typedef
GradientImageTypeListAdaptorType::Pointer 
GradientImageTypeListAdaptorPointer
 
typedef
itk::Statistics::CovarianceSampleFilter
< GradientImageTypeListAdaptorType
GradientImageTypeCovarianceSampleFilterType
 
typedef
GradientImageTypeCovarianceSampleFilterType::Pointer 
GradientImageTypeCovarianceSampleFilterPointer
 
typedef SimilarityMeasure
< TImageType, TImageType > 
SimilarityMeasureType
 
typedef SimilarityMeasureTypeSimilarityMeasurePointer
 
typedef
NearestNeighborInterpolateImageFunction
< TImageType, TScalarType > 
DummyInterpolatorType
 
typedef
DummyInterpolatorType::Pointer 
DummyInterpolatorPointer
 
typedef Superclass::ParametersType ParametersType
 
typedef PointSet< TScalarType,
TImageType::ImageDimension,
DefaultStaticMeshTraits
< TScalarType,
TImageType::ImageDimension,
TImageType::ImageDimension,
TScalarType, TScalarType > > 
PointSetType
 
typedef PointSetType::PointType PointType
 
typedef
PointSetType::PointsContainer::ConstIterator 
PointIterator
 
typedef PointSetType::Pointer PointSetPointer
 
typedef
PointSetType::PointsContainer 
PointsContainerType
 
typedef
PointsContainerType::Pointer 
PointsContainerPointer
 
typedef
PointSetToPointSetSingleValuedMetric
< PointSetType, PointSetType
PointSetMetricType
 
typedef PointSetMetricType::Pointer PointSetMetricPointer
 
typedef Superclass::TransformType TransformType
 
typedef TransformTypeTransformPointer
 
typedef
MinimumMaximumImageCalculator
< TImageType > 
MinimumMaximumImageCalculatorType
 
typedef
MinimumMaximumImageCalculatorType::Pointer 
MinimumMaximumImageCalculatorPointer
 
- Public Types inherited from itk::MaskedImageRegistrationMethod< TImageType >
typedef
MaskedImageRegistrationMethod 
Self
 
typedef
SingleResolutionImageRegistrationMethod
< TImageType, TImageType > 
Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef TImageType InputImageType
 
typedef InputImageType::PixelType InputImagePixelType
 
typedef InputImageType::Pointer InputImagePointer
 
typedef
InputImageType::ConstPointer 
InputImageConstPointer
 
typedef InputImageType::RegionType InputImageRegionType
 
typedef InputImageType::SizeType InputImageSizeType
 
typedef InputImageType::IndexType InputImageIndexType
 
typedef InputImageType::SpacingType InputImageSpacingType
 
typedef InputImageType::PointType InputImageOriginType
 
typedef
InputImageType::DirectionType 
InputImageDirectionType
 
typedef
BoundaryValueRescaleIntensityImageFilter
< InputImageType
RescaleFilterType
 
typedef RescaleFilterType::Pointer RescaleFilterPointer
 
typedef
SmoothingRecursiveGaussianImageFilter
< InputImageType,
InputImageType
SmoothingFilterType
 
typedef
SmoothingFilterType::Pointer 
SmoothingFilterPointer
 
typedef
BinaryThresholdImageFilter
< InputImageType,
InputImageType
ThresholdFilterType
 
typedef
ThresholdFilterType::Pointer 
ThresholdFilterPointer
 
typedef
BinaryCrossStructuringElement
< InputImagePixelType,
InputImageType::ImageDimension > 
StructuringType
 
typedef
BinaryDilateImageFilter
< InputImageType,
InputImageType,
StructuringType
DilateMaskFilterType
 
typedef
DilateMaskFilterType::Pointer 
DilateMaskFilterPointer
 
typedef MultiplyImageFilter
< InputImageType,
InputImageType
MultiplyFilterType
 
typedef MultiplyFilterType::Pointer MultiplyFilterPointer
 
typedef unsigned char MaskPixelType
 
typedef Image< MaskPixelType,
InputImageType::ImageDimension > 
MaskImageType
 
typedef CastImageFilter
< InputImageType,
MaskImageType
CastToMaskImageTypeFilterType
 
typedef
CastToMaskImageTypeFilterType::Pointer 
CastToMaskImageTypeFilterPointer
 
typedef ImageMaskSpatialObject
< InputImageType::ImageDimension > 
MaskFilterType
 
typedef MaskFilterType::Pointer MaskFilterPointer
 
typedef Superclass::TransformType TransformType
 
- Public Types inherited from itk::SingleResolutionImageRegistrationMethod< TImageType, TImageType >
typedef
SingleResolutionImageRegistrationMethod 
Self
 
typedef
ImageRegistrationMethod
< TImageType, TImageType > 
Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef itk::IterationUpdateCommand IterationUpdateCommandType
 
typedef
IterationUpdateCommandType::Pointer 
IterationUpdateCommandPointer
 
typedef Superclass::ParametersType ParametersType
 
typedef Superclass::TransformType TransformType
 
typedef
Superclass::InterpolatorType 
InterpolatorType
 

Public Member Functions

virtual const char * GetClassName () const
 
 itkStaticConstMacro (Dimension, unsigned int, TImageType::ImageDimension)
 
virtual void SetPointSetMetric (PointSetMetricType *_arg)
 
virtual PointSetMetricTypeGetPointSetMetric ()
 
virtual void SetMaximumNumberOfIterationsRoundMainLoop (unsigned int _arg)
 
virtual unsigned int GetMaximumNumberOfIterationsRoundMainLoop ()
 
void SetBlockParameters (double blockSize, double blockHalfWidth, double blockSpacing, double blockSubSampling)
 
virtual double GetBlockSize ()
 
virtual double GetBlockHalfWidth ()
 
virtual double GetBlockSpacing ()
 
virtual double GetBlockSubSampling ()
 
virtual void SetTransformedMovingImageFileName (std::string _arg)
 
virtual std::string GetTransformedMovingImageFileName ()
 
virtual void SetTransformedMovingImageFileExt (std::string _arg)
 
virtual std::string GetTransformedMovingImageFileExt ()
 
virtual void SetWriteTransformedMovingImage (bool _arg)
 
virtual bool GetWriteTransformedMovingImage ()
 
virtual void SetEpsilon (double _arg)
 
virtual double GetEpsilon ()
 
virtual void SetParameterReductionFactor (double _arg)
 
virtual double GetParameterReductionFactor ()
 
virtual void SetMinimumBlockSize (double _arg)
 
virtual double GetMinimumBlockSize ()
 
virtual void SetPercentageOfPointsToKeep (int _arg)
 
virtual int GetPercentageOfPointsToKeep ()
 
virtual void SetPercentageOfPointsInLeastTrimmedSquares (int _arg)
 
virtual int GetPercentageOfPointsInLeastTrimmedSquares ()
 
virtual void SetUseGradientMagnitudeVariance (bool _arg)
 
virtual bool GetUseGradientMagnitudeVariance ()
 
virtual void SetScaleByMillimetres (bool _arg)
 
virtual bool GetScaleByMillimetres ()
 
virtual void SetPointSetFileNameWithoutExtension (std::string _arg)
 
virtual std::string GetPointSetFileNameWithoutExtension ()
 
virtual void SetWritePointSet (bool _arg)
 
virtual bool GetWritePointSet ()
 
virtual void SetNoZero (bool _arg)
 
virtual bool GetNoZero ()
 
virtual void SetTransformedMovingImagePadValue (ImagePixelType _arg)
 
virtual ImagePixelType GetTransformedMovingImagePadValue ()
 
- Public Member Functions inherited from itk::MaskedImageRegistrationMethod< TImageType >
void SetFixedMask (const InputImageType *fixedMask)
 
virtual const InputImageTypeGetFixedMask ()
 
void SetMovingMask (const InputImageType *movingMask)
 
virtual const InputImageTypeGetMovingMask ()
 
virtual void SetUseFixedMask (bool _arg)
 
virtual bool GetUseFixedMask () const
 
virtual void SetUseMovingMask (bool _arg)
 
virtual bool GetUseMovingMask () const
 
virtual void SetNumberOfDilations (unsigned int _arg)
 
virtual unsigned int GetNumberOfDilations ()
 
virtual void SetMaskImageDirectly (bool _arg)
 
virtual bool GetMaskImageDirectly ()
 
virtual void SetRescaleFixedImage (bool _arg)
 
virtual bool GetRescaleFixedImage () const
 
virtual void SetRescaleFixedMinimum (InputImagePixelType _arg)
 
virtual InputImagePixelType GetRescaleFixedMinimum () const
 
virtual void SetRescaleFixedMaximum (InputImagePixelType _arg)
 
virtual InputImagePixelType GetRescaleFixedMaximum () const
 
virtual void SetRescaleFixedBoundaryValue (InputImagePixelType _arg)
 
virtual InputImagePixelType GetRescaleFixedBoundaryValue () const
 
virtual void SetRescaleFixedLowerThreshold (InputImagePixelType _arg)
 
virtual InputImagePixelType GetRescaleFixedLowerThreshold () const
 
virtual void SetRescaleFixedUpperThreshold (InputImagePixelType _arg)
 
virtual InputImagePixelType GetRescaleFixedUpperThreshold () const
 
virtual void SetRescaleMovingImage (bool _arg)
 
virtual bool GetRescaleMovingImage () const
 
virtual void SetRescaleMovingMinimum (InputImagePixelType _arg)
 
virtual InputImagePixelType GetRescaleMovingMinimum () const
 
virtual void SetRescaleMovingMaximum (InputImagePixelType _arg)
 
virtual InputImagePixelType GetRescaleMovingMaximum () const
 
virtual void SetRescaleMovingBoundaryValue (InputImagePixelType _arg)
 
virtual InputImagePixelType GetRescaleMovingBoundaryValue () const
 
virtual void SetRescaleMovingLowerThreshold (InputImagePixelType _arg)
 
virtual InputImagePixelType GetRescaleMovingLowerThreshold () const
 
virtual void SetRescaleMovingUpperThreshold (InputImagePixelType _arg)
 
virtual InputImagePixelType GetRescaleMovingUpperThreshold () const
 
virtual void SetThresholdFixedMask (bool _arg)
 
virtual bool GetThresholdFixedMask () const
 
virtual void SetFixedMaskMinimum (InputImagePixelType _arg)
 
virtual InputImagePixelType GetFixedMaskMinimum () const
 
virtual void SetFixedMaskMaximum (InputImagePixelType _arg)
 
virtual InputImagePixelType GetFixedMaskMaximum () const
 
virtual void SetThresholdMovingMask (bool _arg)
 
virtual bool GetThresholdMovingMask () const
 
virtual void SetMovingMaskMinimum (InputImagePixelType _arg)
 
virtual InputImagePixelType GetMovingMaskMinimum () const
 
virtual void SetMovingMaskMaximum (InputImagePixelType _arg)
 
virtual InputImagePixelType GetMovingMaskMaximum () const
 
virtual void SetSigma (float _arg)
 
virtual float GetSigma ()
 
InputImageTypeGetFixedImageCopy ()
 
InputImageTypeGetMovingImageCopy ()
 
- Public Member Functions inherited from itk::SingleResolutionImageRegistrationMethod< TImageType, TImageType >
virtual void SetIterationUpdateCommand (IterationUpdateCommandType *_arg)
 
virtual
IterationUpdateCommandType
GetIterationUpdateCommand ()
 
virtual void SetFixedImageInterpolator (InterpolatorType *_arg)
 
virtual void SetMovingImageInterpolator (InterpolatorType *_arg)
 
virtual InterpolatorTypeGetFixedImageInterpolator ()
 
virtual InterpolatorTypeGetMovingImageInterpolator ()
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::MaskedImageRegistrationMethod< TImageType >
static Pointer New ()
 
- Static Public Member Functions inherited from itk::SingleResolutionImageRegistrationMethod< TImageType, TImageType >
static Pointer New ()
 

Protected Types

typedef std::priority_queue
< VarianceHeapDataType
VarianceHeap
 
typedef std::priority_queue
< ResidualHeapDataType
ResidualHeap
 

Protected Member Functions

 BlockMatchingMethod ()
 
virtual ~BlockMatchingMethod ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
virtual void Initialize () throw (ExceptionObject)
 
virtual void DoRegistration () throw (ExceptionObject)
 
virtual void WritePointSet (const PointsContainerPointer &fixedPointContainer, const PointsContainerPointer &movingPointContainer)
 
virtual void GetPointCorrespondencies2D (ImageSizeType &size, ImageSizeType &bigN, ImageSizeType &bigOmega, ImageSizeType &bigDeltaOne, ImageSizeType &bigDeltaTwo, PointsContainerPointer &fixedPointContainer, PointsContainerPointer &movingPointContainer)
 
virtual void GetPointCorrespondencies3D (ImageSizeType &size, ImageSizeType &bigN, ImageSizeType &bigOmega, ImageSizeType &bigDeltaOne, ImageSizeType &bigDeltaTwo, PointsContainerPointer &fixedPointContainer, PointsContainerPointer &movingPointContainer)
 
virtual bool CheckEpsilon (ParametersType &previousParameters, ParametersType &currentParameters)
 
virtual double CheckSinglePoint (ParametersType &previousParameters, ParametersType &currentParameters, ImageIndexType &index)
 
virtual void TrimPoints (const TransformType *transform, const PointsContainerType *fixedPoints, const PointsContainerType *movingPoints, PointsContainerType *trimmedFixedPoints, PointsContainerType *trimmedMovingPoints)
 
- Protected Member Functions inherited from itk::MaskedImageRegistrationMethod< TImageType >
 MaskedImageRegistrationMethod ()
 
virtual ~MaskedImageRegistrationMethod ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
void CopyImage (const InputImageType *source, InputImageType *target)
 
- Protected Member Functions inherited from itk::SingleResolutionImageRegistrationMethod< TImageType, TImageType >
 SingleResolutionImageRegistrationMethod ()
 
virtual ~SingleResolutionImageRegistrationMethod ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
void GenerateData ()
 

Additional Inherited Members

- Protected Attributes inherited from itk::SingleResolutionImageRegistrationMethod< TImageType, TImageType >
InterpolatorType::Pointer m_FixedImageInterpolator
 
InterpolatorType::Pointer m_MovingImageInterpolator
 

Detailed Description

template<typename TImageType, class TScalarType>
class itk::BlockMatchingMethod< TImageType, TScalarType >

Initial implementation of Seb Ourselin's block matching algorithm.

This class implements the main algorithm of Ourselin et. al. Image and Vision Computing 19 (2000) 25-31. It's a subclass of the itkSingleResolutionImageRegistrationMethod so that we can easily plug it into our usual multi-resolution stuff in itkMultiResolutionImageRegistrationWrapper, and hence put it into itkImageRegistrationFilter.

This implementation uses the same components as the other methods in the RegistrationToolbox, but it doesn't use the same plumbing at all. This class overrides a lot of the base class functionality, so you are advised to look at the implementation.

The algorithm proceeds by:

  1. Take initial transform parameters, and resample the moving image.
  2. Subdivide the fixed image into blocks, and find the corresponding block in the resampled moving image that is most similar.
  3. This results in a list of pairs of point correspondences between the centre of the fixed image block, and the centre of the moving image block.
  4. Take these point correspondences, and perform a trimmed least squares fit, optimising your choice of transformation.
  5. Repeat from 1.

For further details read Ourselin et. al. Image and Vision Computing 19 (2000) 25-31.

See also
MultiResolutionImageRegistrationWrapper
ImageRegistrationFilter

Member Typedef Documentation

template<typename TImageType, class TScalarType>
typedef SmartPointer<const Self> itk::BlockMatchingMethod< TImageType, TScalarType >::ConstPointer
template<typename TImageType, class TScalarType>
typedef DummyInterpolatorType::Pointer itk::BlockMatchingMethod< TImageType, TScalarType >::DummyInterpolatorPointer
template<typename TImageType, class TScalarType>
typedef NearestNeighborInterpolateImageFunction< TImageType, TScalarType> itk::BlockMatchingMethod< TImageType, TScalarType >::DummyInterpolatorType
template<typename TImageType, class TScalarType>
typedef Image<float, TImageType::ImageDimension> itk::BlockMatchingMethod< TImageType, TScalarType >::GradientImageType
template<typename TImageType, class TScalarType>
typedef GradientImageTypeCovarianceSampleFilterType::Pointer itk::BlockMatchingMethod< TImageType, TScalarType >::GradientImageTypeCovarianceSampleFilterPointer
template<typename TImageType, class TScalarType>
typedef itk::Statistics::CovarianceSampleFilter< GradientImageTypeListAdaptorType > itk::BlockMatchingMethod< TImageType, TScalarType >::GradientImageTypeCovarianceSampleFilterType
template<typename TImageType, class TScalarType>
typedef GradientImageTypeListAdaptorType::Pointer itk::BlockMatchingMethod< TImageType, TScalarType >::GradientImageTypeListAdaptorPointer
template<typename TImageType, class TScalarType>
typedef itk::Statistics::ImageToListSampleAdaptor< GradientImageType > itk::BlockMatchingMethod< TImageType, TScalarType >::GradientImageTypeListAdaptorType
template<typename TImageType, class TScalarType>
typedef GradientMagnitudeFilterType::Pointer itk::BlockMatchingMethod< TImageType, TScalarType >::GradientMagnitudeFilterPointer
template<typename TImageType, class TScalarType>
typedef GradientMagnitudeImageFilter<TImageType, GradientImageType> itk::BlockMatchingMethod< TImageType, TScalarType >::GradientMagnitudeFilterType
template<typename TImageType, class TScalarType>
typedef ImageType::IndexType itk::BlockMatchingMethod< TImageType, TScalarType >::ImageIndexType
template<typename TImageType, class TScalarType>
typedef ImageType::PixelType itk::BlockMatchingMethod< TImageType, TScalarType >::ImagePixelType
template<typename TImageType, class TScalarType>
typedef ImageType::RegionType itk::BlockMatchingMethod< TImageType, TScalarType >::ImageRegionType
template<typename TImageType, class TScalarType>
typedef ImageType::SizeType itk::BlockMatchingMethod< TImageType, TScalarType >::ImageSizeType
template<typename TImageType, class TScalarType>
typedef ImageType::SpacingType itk::BlockMatchingMethod< TImageType, TScalarType >::ImageSpacingType
template<typename TImageType, class TScalarType>
typedef TImageType itk::BlockMatchingMethod< TImageType, TScalarType >::ImageType

Typdef's anonymous.

template<typename TImageType, class TScalarType>
typedef ImageTypeCovarianceSampleFilterType::Pointer itk::BlockMatchingMethod< TImageType, TScalarType >::ImageTypeCovarianceSampleFilterPointer
template<typename TImageType, class TScalarType>
typedef itk::Statistics::CovarianceSampleFilter< ImageTypeListAdaptorType > itk::BlockMatchingMethod< TImageType, TScalarType >::ImageTypeCovarianceSampleFilterType
template<typename TImageType, class TScalarType>
typedef ImageTypeListAdaptorType::Pointer itk::BlockMatchingMethod< TImageType, TScalarType >::ImageTypeListAdaptorPointer
template<typename TImageType, class TScalarType>
typedef itk::Statistics::ImageToListSampleAdaptor< ImageType > itk::BlockMatchingMethod< TImageType, TScalarType >::ImageTypeListAdaptorType
template<typename TImageType, class TScalarType>
typedef MinimumMaximumImageCalculatorType::Pointer itk::BlockMatchingMethod< TImageType, TScalarType >::MinimumMaximumImageCalculatorPointer
template<typename TImageType, class TScalarType>
typedef MinimumMaximumImageCalculator<TImageType> itk::BlockMatchingMethod< TImageType, TScalarType >::MinimumMaximumImageCalculatorType
template<typename TImageType, class TScalarType>
typedef Superclass::ParametersType itk::BlockMatchingMethod< TImageType, TScalarType >::ParametersType
template<typename TImageType, class TScalarType>
typedef SmartPointer<Self> itk::BlockMatchingMethod< TImageType, TScalarType >::Pointer
template<typename TImageType, class TScalarType>
typedef PointSetType::PointsContainer::ConstIterator itk::BlockMatchingMethod< TImageType, TScalarType >::PointIterator
template<typename TImageType, class TScalarType>
typedef PointsContainerType::Pointer itk::BlockMatchingMethod< TImageType, TScalarType >::PointsContainerPointer
template<typename TImageType, class TScalarType>
typedef PointSetType::PointsContainer itk::BlockMatchingMethod< TImageType, TScalarType >::PointsContainerType
template<typename TImageType, class TScalarType>
typedef PointSetMetricType::Pointer itk::BlockMatchingMethod< TImageType, TScalarType >::PointSetMetricPointer
template<typename TImageType, class TScalarType>
typedef PointSetToPointSetSingleValuedMetric<PointSetType, PointSetType> itk::BlockMatchingMethod< TImageType, TScalarType >::PointSetMetricType
template<typename TImageType, class TScalarType>
typedef PointSetType::Pointer itk::BlockMatchingMethod< TImageType, TScalarType >::PointSetPointer
template<typename TImageType, class TScalarType>
typedef PointSet< TScalarType, TImageType::ImageDimension, DefaultStaticMeshTraits < TScalarType, TImageType::ImageDimension, TImageType::ImageDimension, TScalarType, TScalarType > > itk::BlockMatchingMethod< TImageType, TScalarType >::PointSetType
template<typename TImageType, class TScalarType>
typedef PointSetType::PointType itk::BlockMatchingMethod< TImageType, TScalarType >::PointType
template<typename TImageType, class TScalarType>
typedef RegionOfInterestFilterType::Pointer itk::BlockMatchingMethod< TImageType, TScalarType >::RegionOfInterestFilterPointer
template<typename TImageType, class TScalarType>
typedef RegionOfInterestImageFilter<TImageType, TImageType> itk::BlockMatchingMethod< TImageType, TScalarType >::RegionOfInterestFilterType
template<typename TImageType, class TScalarType>
typedef ResampleFilterType::Pointer itk::BlockMatchingMethod< TImageType, TScalarType >::ResampleFilterPointer
template<typename TImageType, class TScalarType>
typedef ResampleImageFilter<TImageType, TImageType > itk::BlockMatchingMethod< TImageType, TScalarType >::ResampleFilterType
template<typename TImageType, class TScalarType>
typedef std::priority_queue<ResidualHeapDataType> itk::BlockMatchingMethod< TImageType, TScalarType >::ResidualHeap
protected
template<typename TImageType, class TScalarType>
typedef BlockMatchingMethod itk::BlockMatchingMethod< TImageType, TScalarType >::Self

Standard class typedefs.

template<typename TImageType, class TScalarType>
typedef SimilarityMeasureType* itk::BlockMatchingMethod< TImageType, TScalarType >::SimilarityMeasurePointer
template<typename TImageType, class TScalarType>
typedef SimilarityMeasure<TImageType, TImageType > itk::BlockMatchingMethod< TImageType, TScalarType >::SimilarityMeasureType
template<typename TImageType, class TScalarType>
typedef MaskedImageRegistrationMethod<TImageType> itk::BlockMatchingMethod< TImageType, TScalarType >::Superclass
template<typename TImageType, class TScalarType>
typedef TransformType* itk::BlockMatchingMethod< TImageType, TScalarType >::TransformPointer
template<typename TImageType, class TScalarType>
typedef Superclass::TransformType itk::BlockMatchingMethod< TImageType, TScalarType >::TransformType
template<typename TImageType, class TScalarType>
typedef std::priority_queue<VarianceHeapDataType> itk::BlockMatchingMethod< TImageType, TScalarType >::VarianceHeap
protected

Constructor & Destructor Documentation

template<typename TImageType, class TScalarType>
itk::BlockMatchingMethod< TImageType, TScalarType >::BlockMatchingMethod ( )
protected
template<typename TImageType, class TScalarType>
virtual itk::BlockMatchingMethod< TImageType, TScalarType >::~BlockMatchingMethod ( )
inlineprotectedvirtual

Member Function Documentation

template<typename TImageType, class TScalarType>
virtual bool itk::BlockMatchingMethod< TImageType, TScalarType >::CheckEpsilon ( ParametersType previousParameters,
ParametersType currentParameters 
)
protectedvirtual

Used to compare the previousParameters to currentParameters and decide if we should keep iterating, or change scale

template<typename TImageType, class TScalarType>
virtual double itk::BlockMatchingMethod< TImageType, TScalarType >::CheckSinglePoint ( ParametersType previousParameters,
ParametersType currentParameters,
ImageIndexType index 
)
protectedvirtual

Multiplies the given point by the two sets of transforms, and returns the difference between the results.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::DoRegistration ( )
throw (ExceptionObject
)
protectedvirtual

We override this method to actually do the registration.

Reimplemented from itk::SingleResolutionImageRegistrationMethod< TImageType, TImageType >.

template<typename TImageType, class TScalarType>
virtual double itk::BlockMatchingMethod< TImageType, TScalarType >::GetBlockHalfWidth ( )
virtual

Get the block half width, this is big Omega in the IVC paper.

template<typename TImageType, class TScalarType>
virtual double itk::BlockMatchingMethod< TImageType, TScalarType >::GetBlockSize ( )
virtual

Get the block size, this is big N in the IVC paper.

template<typename TImageType, class TScalarType>
virtual double itk::BlockMatchingMethod< TImageType, TScalarType >::GetBlockSpacing ( )
virtual

Get the spacing between blocks, this is big Delta_1 in the IVC paper.

template<typename TImageType, class TScalarType>
virtual double itk::BlockMatchingMethod< TImageType, TScalarType >::GetBlockSubSampling ( )
virtual

Get the sub-sampling for moving blocks, this is big Delta_2 in the IVC paper.

template<typename TImageType, class TScalarType>
virtual const char* itk::BlockMatchingMethod< TImageType, TScalarType >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::MaskedImageRegistrationMethod< TImageType >.

template<typename TImageType, class TScalarType>
virtual double itk::BlockMatchingMethod< TImageType, TScalarType >::GetEpsilon ( )
virtual
template<typename TImageType, class TScalarType>
virtual unsigned int itk::BlockMatchingMethod< TImageType, TScalarType >::GetMaximumNumberOfIterationsRoundMainLoop ( )
virtual
template<typename TImageType, class TScalarType>
virtual double itk::BlockMatchingMethod< TImageType, TScalarType >::GetMinimumBlockSize ( )
virtual
template<typename TImageType, class TScalarType>
virtual bool itk::BlockMatchingMethod< TImageType, TScalarType >::GetNoZero ( )
virtual
template<typename TImageType, class TScalarType>
virtual double itk::BlockMatchingMethod< TImageType, TScalarType >::GetParameterReductionFactor ( )
virtual
template<typename TImageType, class TScalarType>
virtual int itk::BlockMatchingMethod< TImageType, TScalarType >::GetPercentageOfPointsInLeastTrimmedSquares ( )
virtual
template<typename TImageType, class TScalarType>
virtual int itk::BlockMatchingMethod< TImageType, TScalarType >::GetPercentageOfPointsToKeep ( )
virtual
template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::GetPointCorrespondencies2D ( ImageSizeType size,
ImageSizeType bigN,
ImageSizeType bigOmega,
ImageSizeType bigDeltaOne,
ImageSizeType bigDeltaTwo,
PointsContainerPointer fixedPointContainer,
PointsContainerPointer movingPointContainer 
)
protectedvirtual

Unfortunately, need a 2D version.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::GetPointCorrespondencies3D ( ImageSizeType size,
ImageSizeType bigN,
ImageSizeType bigOmega,
ImageSizeType bigDeltaOne,
ImageSizeType bigDeltaTwo,
PointsContainerPointer fixedPointContainer,
PointsContainerPointer movingPointContainer 
)
protectedvirtual

Unfortunately, need a 3D version aswell.

template<typename TImageType, class TScalarType>
virtual std::string itk::BlockMatchingMethod< TImageType, TScalarType >::GetPointSetFileNameWithoutExtension ( )
virtual
template<typename TImageType, class TScalarType>
virtual PointSetMetricType* itk::BlockMatchingMethod< TImageType, TScalarType >::GetPointSetMetric ( )
virtual
template<typename TImageType, class TScalarType>
virtual bool itk::BlockMatchingMethod< TImageType, TScalarType >::GetScaleByMillimetres ( )
virtual
template<typename TImageType, class TScalarType>
virtual std::string itk::BlockMatchingMethod< TImageType, TScalarType >::GetTransformedMovingImageFileExt ( )
virtual
template<typename TImageType, class TScalarType>
virtual std::string itk::BlockMatchingMethod< TImageType, TScalarType >::GetTransformedMovingImageFileName ( )
virtual
template<typename TImageType, class TScalarType>
virtual ImagePixelType itk::BlockMatchingMethod< TImageType, TScalarType >::GetTransformedMovingImagePadValue ( )
virtual
template<typename TImageType, class TScalarType>
virtual bool itk::BlockMatchingMethod< TImageType, TScalarType >::GetUseGradientMagnitudeVariance ( )
virtual
template<typename TImageType, class TScalarType>
virtual bool itk::BlockMatchingMethod< TImageType, TScalarType >::GetWritePointSet ( )
virtual
template<typename TImageType, class TScalarType>
virtual bool itk::BlockMatchingMethod< TImageType, TScalarType >::GetWriteTransformedMovingImage ( )
virtual
template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::Initialize ( )
throw (ExceptionObject
)
protectedvirtual

We override this method to wire everything together.

Reimplemented from itk::MaskedImageRegistrationMethod< TImageType >.

template<typename TImageType, class TScalarType>
itk::BlockMatchingMethod< TImageType, TScalarType >::itkStaticConstMacro ( Dimension  ,
unsigned  int,
TImageType::ImageDimension   
)

Get the number of dimensions we are working in.

template<typename TImageType, class TScalarType>
static Pointer itk::BlockMatchingMethod< TImageType, TScalarType >::New ( )
static

Method for creation through the object factory.

template<typename TImageType, class TScalarType>
void itk::BlockMatchingMethod< TImageType, TScalarType >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protected
template<typename TImageType, class TScalarType>
void itk::BlockMatchingMethod< TImageType, TScalarType >::SetBlockParameters ( double  blockSize,
double  blockHalfWidth,
double  blockSpacing,
double  blockSubSampling 
)

Set all the block parameters in one go. Otherwise, they default to -1, and this class works them out according to section 2.3 in Ourselin et. al. Image and Vision Computing 19 (2000) 25-31.

blockSize is big N in the IVC paper. blockHalfWidth is big Omega in the IVC paper. blockSpacing is big Delta_1 in the IVC paper. blockSubSampling is big Delta_2 in the IVC paper.

You should set these values in millimetres, and then internally, we set up different values for each image axis depending on voxel size.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetEpsilon ( double  _arg)
virtual

Set/Get Epsilon to control the termination criteria. See Section 2.3. in IVC 2000 paper. Defaults to 1.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetMaximumNumberOfIterationsRoundMainLoop ( unsigned int  _arg)
virtual

Max iterations round main 1. ) block match, 2.) optimisation loop. Default 10.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetMinimumBlockSize ( double  _arg)
virtual

Set the minimum block size (Big N in IVC 2000 paper). Default 4.0 mm.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetNoZero ( bool  _arg)
virtual

To determine if we include pairs with zero displacement.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetParameterReductionFactor ( double  _arg)
virtual

According to paper, once we have solved at one level, we half the parameters and continue. This parameter gives us the option to reduce it more quickly or more slowly. Default 0.5

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetPercentageOfPointsInLeastTrimmedSquares ( int  _arg)
virtual

Set the percentage of points to keep in least trimmed squares. As with PercentageOfPointsToKeep, this is applied blindly, so this class knows nothing of how you change it for different multi-resolution levels. Defaults to 100%

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetPercentageOfPointsToKeep ( int  _arg)
virtual

Set the percentage of fixed image points to used, based on variance. In Ourselin et. al. MICCAI 2002, the multi-resolution approach describes how you use all points at lower resolution, and halve the number of relevant voxels at each resolution, with a lower bound of 20%. So, this percentage should be set externally, as this class just applies it blindly. Defaults to 100%.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetPointSetFileNameWithoutExtension ( std::string  _arg)
virtual

Set the file name. The file extension .vtk is added automatically.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetPointSetMetric ( PointSetMetricType _arg)
virtual

Set/Get the point based metric.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetScaleByMillimetres ( bool  _arg)
virtual

Scale block parameters from voxels to millimetres.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetTransformedMovingImageFileExt ( std::string  _arg)
virtual

For writing out the transformed moving image.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetTransformedMovingImageFileName ( std::string  _arg)
virtual

For writing out the transformed moving image.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetTransformedMovingImagePadValue ( ImagePixelType  _arg)
virtual

Set the transformed moving image pad value. Default 0.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetUseGradientMagnitudeVariance ( bool  _arg)
virtual

And when we are calculating the variance, if this is true, we use the gradient magnitude image and if this is false, we use the normal intensity image.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetWritePointSet ( bool  _arg)
virtual

To determine if we write the point set.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::SetWriteTransformedMovingImage ( bool  _arg)
virtual

For writing out the transformed moving image.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::TrimPoints ( const TransformType transform,
const PointsContainerType fixedPoints,
const PointsContainerType movingPoints,
PointsContainerType trimmedFixedPoints,
PointsContainerType trimmedMovingPoints 
)
protectedvirtual

Method to trim points.

template<typename TImageType, class TScalarType>
virtual void itk::BlockMatchingMethod< TImageType, TScalarType >::WritePointSet ( const PointsContainerPointer fixedPointContainer,
const PointsContainerPointer movingPointContainer 
)
protectedvirtual

Writes the point set to file.


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