Inheritance diagram for itk::KullbackLeiblerCompareHistogramImageToImageMetric< TFixedImage, TMovingImage >:
This class is templated over the type of the fixed and moving images to be compared.
This class computers the KL-metric by comparing the histograms of the testing histogram formed by the overlap of intensities in the images, to a training histogram. It is based on the following paper:
Albert C.S. Chung, William M. Wells III, Alexander Norbash, and W. Eric L. Grimson, Multi-modal Image Registration by Minimising Kullback-Leibler Distance, In Medical Image Computing and Computer-Assisted Intervention - MICCAI 2002, LNCS 2489, pp. 525 - 532.
The metric is given by KL(P_test||P_train) = Sum_{i1,i2} P_test(i1,i2) vcl_log(P_test(i1,i2)/P_train(i1,i2)) where P_test and P_train are probabilities given my normalized histograms, and i1 and i2 are the intensity bins in the histogram.
|
| | KullbackLeiblerCompareHistogramImageToImageMetric () |
| void | PrintSelf (std::ostream &os, Indent indent) const |
| virtual | ~KullbackLeiblerCompareHistogramImageToImageMetric () |
Public Types |
typedef SmartPointer< const
Self > | ConstPointer |
| typedef Superclass::ParametersValueType | CoordinateRepresentationType |
| typedef Superclass::ParametersValueType | CoordinateRepresentationType |
| typedef Superclass::DerivativeType | DerivativeType |
| typedef Superclass::FixedImageConstPointer | FixedImageConstPointer |
| typedef Superclass::FixedImageConstPointer | FixedImageConstPointerType |
| typedef std::vector< FixedImageIndexType > | FixedImageIndexContainer |
| typedef FixedImageType::IndexType | FixedImageIndexType |
| typedef FixedImageIndexType::IndexValueType | FixedImageIndexValueType |
| typedef FixedImageMaskType::Pointer | FixedImageMaskPointer |
| typedef FixedImageMaskType::Pointer | FixedImageMaskPointer |
| typedef SpatialObject< itkGetStaticConstMacro(FixedImageDimension) > | FixedImageMaskType |
| typedef SpatialObject< itkGetStaticConstMacro(FixedImageDimension) > | FixedImageMaskType |
| typedef Superclass::FixedImageType::PixelType | FixedImagePixelType |
| typedef TransformType::InputPointType | FixedImagePointType |
| typedef Superclass::FixedImageRegionType | FixedImageRegionType |
| typedef Superclass::FixedImageType | FixedImageType |
| typedef Superclass::GradientPixelType | GradientPixelType |
| typedef Superclass::HistogramFrequencyType | HistogramFrequencyType |
| typedef Superclass::HistogramIteratorType | HistogramIteratorType |
| typedef Superclass::MeasurementVectorType | HistogramMeasurementVectorType |
| typedef HistogramType::Pointer | HistogramPointer |
| typedef Superclass::HistogramPointerType | HistogramPointerType |
| typedef Superclass::HistogramSizeType | HistogramSizeType |
| typedef Superclass::HistogramType | HistogramType |
| typedef Superclass::InputPointType | InputPointType |
| typedef Superclass::InterpolatorPointer | InterpolatorPointer |
| typedef Superclass::InterpolatorType | InterpolatorType |
| typedef HistogramType::MeasurementVectorType | MeasurementVectorType |
| typedef Superclass::MeasureType | MeasureType |
| typedef Superclass::MovingImageConstPointer | MovingImageConstPointer |
| typedef Superclass::MovingImageConstPointer | MovingImageConstPointerType |
| typedef MovingImageType::IndexType | MovingImageIndexType |
| typedef MovingImageMaskType::Pointer | MovingImageMaskPointer |
| typedef MovingImageMaskType::Pointer | MovingImageMaskPointer |
| typedef SpatialObject< itkGetStaticConstMacro(MovingImageDimension) > | MovingImageMaskType |
| typedef SpatialObject< itkGetStaticConstMacro(MovingImageDimension) > | MovingImageMaskType |
| typedef Superclass::MovingImageType::PixelType | MovingImagePixelType |
| typedef TransformType::OutputPointType | MovingImagePointType |
| typedef Superclass::MovingImageType | MovingImageType |
| typedef Superclass::OutputPointType | OutputPointType |
| typedef Superclass::ParametersType | ParametersType |
| typedef Superclass::ParametersType | ParametersType |
| typedef double | ParametersValueType |
| typedef SmartPointer< Self > | Pointer |
| typedef Superclass::RealType | RealType |
| typedef Array< double > | ScalesType |
| typedef KullbackLeiblerCompareHistogramImageToImageMetric | Self |
typedef CompareHistogramImageToImageMetric<
TFixedImage, TMovingImage > | Superclass |
| typedef Superclass::ConstPointer | TransformConstPointer |
| typedef Superclass::TransformJacobianType | TransformJacobianType |
| typedef Superclass::TransformParametersType | TransformParametersType |
| typedef Superclass::TransformPointer | TransformPointer |
| typedef Superclass::TransformType | TransformType |
|
| typedef GradientImageFilterType::Pointer | GradientImageFilterPointer |
typedef GradientRecursiveGaussianImageFilter<
MovingImageType, GradientImageType > | GradientImageFilterType |
| typedef SmartPointer< GradientImageType > | GradientImagePointer |
typedef Image< GradientPixelType,
itkGetStaticConstMacro(MovingImageDimension)> | GradientImageType |
|
| typedef GradientImageFilterType::Pointer | GradientImageFilterPointer |
typedef GradientRecursiveGaussianImageFilter<
MovingImageType, GradientImageType > | GradientImageFilterType |
| typedef SmartPointer< GradientImageType > | GradientImagePointer |
typedef Image< GradientPixelType,
itkGetStaticConstMacro(MovingImageDimension)> | GradientImageType |
Public Member Functions |
| virtual void | ComputeGradient (void) |
| virtual void | ComputeGradient () |
| virtual LightObject::Pointer | CreateAnother () const |
| virtual void | DebugOff () const |
| virtual void | DebugOn () const |
| virtual void | Delete () |
| Command * | GetCommand (unsigned long tag) |
| bool | GetDebug () const |
| virtual void | GetDerivative (const ParametersType ¶meters, DerivativeType &derivative) const=0 |
| void | GetDerivative (const TransformParametersType ¶meters, DerivativeType &derivative) const |
| virtual double | GetDerivativeStepLength () |
| virtual const ScalesType & | GetDerivativeStepLengthScales () |
| virtual const double & | GetEpsilon () |
| virtual const FixedImageType * | GetFixedImage () |
| virtual const FixedImageType * | GetFixedImage () |
| virtual const FixedImageRegionType & | GetFixedImageRegion () |
| virtual const FixedImageRegionType & | GetFixedImageRegion () |
| virtual const GradientImageType * | GetGradientImage () |
| virtual const GradientImageType * | GetGradientImage () |
| virtual const HistogramPointer & | GetHistogram () |
| virtual const HistogramSizeType & | GetHistogramSize () |
| virtual const InterpolatorType * | GetInterpolator () |
| virtual const InterpolatorType * | GetInterpolator () |
| const MetaDataDictionary & | GetMetaDataDictionary (void) const |
| MetaDataDictionary & | GetMetaDataDictionary (void) |
| virtual const MovingImageType * | GetMovingImage () |
| virtual const MovingImageType * | GetMovingImage () |
| virtual unsigned long | GetMTime () const |
| virtual const char * | GetNameOfClass () const |
| virtual const unsigned long & | GetNumberOfFixedImageSamples () |
| unsigned int | GetNumberOfParameters (void) const |
| virtual const unsigned long & | GetNumberOfPixelsCounted () |
| virtual const unsigned long & | GetNumberOfPixelsCounted () |
| unsigned long | GetNumberOfSpatialSamples (void) |
| virtual const FixedImagePixelType & | GetPaddingValue () |
| virtual int | GetReferenceCount () const |
| virtual const FixedImageType * | GetTrainingFixedImage () |
| virtual const FixedImageRegionType & | GetTrainingFixedImageRegion () |
| virtual const HistogramPointerType & | GetTrainingHistogram () |
| virtual InterpolatorType * | GetTrainingInterpolator () |
| virtual const MovingImageType * | GetTrainingMovingImage () |
| virtual TransformType * | GetTrainingTransform () |
| virtual const TransformType * | GetTransform () |
| virtual const TransformType * | GetTransform () |
| virtual MeasureType | GetValue (const ParametersType ¶meters) const=0 |
| MeasureType | GetValue (const TransformParametersType ¶meters) const |
| void | GetValueAndDerivative (const TransformParametersType ¶meters, MeasureType &Value, DerivativeType &Derivative) const |
| bool | HasObserver (const EventObject &event) const |
| void | Initialize () throw (ExceptionObject) |
| void | InvokeEvent (const EventObject &) const |
| void | InvokeEvent (const EventObject &) |
| virtual void | Modified () const |
| virtual void | MultiThreadingInitialize (void) throw ( ExceptionObject ) |
| void | Print (std::ostream &os, Indent indent=0) const |
| virtual void | Register () const |
| void | RemoveAllObservers () |
| void | RemoveObserver (unsigned long tag) |
| void | SetDebug (bool debugFlag) const |
| virtual void | SetDerivativeStepLength (double _arg) |
| virtual void | SetDerivativeStepLengthScales (ScalesType _arg) |
| virtual void | SetEpsilon (double _arg) |
| virtual void | SetFixedImage (const FixedImageType *_arg) |
| virtual void | SetFixedImage (const FixedImageType *_arg) |
| void | SetFixedImageIndexes (const FixedImageIndexContainer &indexes) |
| virtual void | SetFixedImageRegion (FixedImageRegionType _arg) |
| virtual void | SetFixedImageRegion (FixedImageRegionType _arg) |
| virtual void | SetHistogramSize (HistogramSizeType _arg) |
| virtual void | SetInterpolator (InterpolatorType *_arg) |
| virtual void | SetInterpolator (InterpolatorType *_arg) |
| void | SetLowerBound (const MeasurementVectorType &bound) |
| void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
| virtual void | SetMovingImage (const MovingImageType *_arg) |
| virtual void | SetMovingImage (const MovingImageType *_arg) |
| void | SetNumberOfSpatialSamples (unsigned long num) |
| virtual void | SetPaddingValue (FixedImagePixelType _arg) |
| virtual void | SetReferenceCount (int) |
| virtual void | SetTrainingFixedImage (const FixedImageType *_arg) |
| virtual void | SetTrainingFixedImageRegion (FixedImageRegionType _arg) |
| virtual void | SetTrainingHistogram (HistogramPointerType _arg) |
| virtual void | SetTrainingInterpolator (InterpolatorType *_arg) |
| virtual void | SetTrainingMovingImage (const MovingImageType *_arg) |
| virtual void | SetTrainingTransform (TransformType *_arg) |
| virtual void | SetTransform (TransformType *_arg) |
| void | SetTransform (TransformType *transform) |
| void | SetTransformParameters (const ParametersType ¶meters) const |
| void | SetTransformParameters (const ParametersType ¶meters) const |
| void | SetUpperBound (const MeasurementVectorType &bound) |
| virtual void | UnRegister () const |
|
| unsigned long | AddObserver (const EventObject &event, Command *) const |
| unsigned long | AddObserver (const EventObject &event, Command *) |
|
| virtual void | ComputeGradientOff () |
| virtual void | ComputeGradientOn () |
| virtual const bool & | GetComputeGradient () |
| virtual void | SetComputeGradient (bool _arg) |
|
| virtual void | ComputeGradientOff () |
| virtual void | ComputeGradientOn () |
| virtual const bool & | GetComputeGradient () |
| virtual void | SetComputeGradient (bool _arg) |
|
| virtual const FixedImageMaskType * | GetFixedImageMask () |
| virtual void | SetFixedImageMask (FixedImageMaskType *_arg) |
|
| virtual const FixedImageMaskType * | GetFixedImageMask () |
| virtual void | SetFixedImageMask (FixedImageMaskType *_arg) |
|
| virtual const FixedImagePixelType & | GetFixedImageSamplesIntensityThreshold () |
| virtual const bool & | GetUseFixedImageSamplesIntensityThreshold () |
| void | SetFixedImageSamplesIntensityThreshold (const FixedImagePixelType &thresh) |
| virtual void | SetUseFixedImageSamplesIntensityThreshold (bool _arg) |
|
| virtual const MovingImageMaskType * | GetMovingImageMask () |
| virtual void | SetMovingImageMask (MovingImageMaskType *_arg) |
|
| virtual const MovingImageMaskType * | GetMovingImageMask () |
| virtual void | SetMovingImageMask (MovingImageMaskType *_arg) |
|
| virtual const unsigned long & | GetNumberOfMovingImageSamples () |
| unsigned long | GetNumberOfPixelsCounter (void) |
|
| virtual const unsigned int & | GetNumberOfThreads () |
| virtual void | SetNumberOfThreads (unsigned int _arg) |
|
| virtual double | GetUpperBoundIncreaseFactor () |
| virtual void | SetUpperBoundIncreaseFactor (double _arg) |
|
| virtual const bool & | GetUseAllPixels () |
| virtual void | SetUseAllPixels (bool _arg) |
| virtual void | UseAllPixelsOff () |
| virtual void | UseAllPixelsOn () |
|
| virtual const bool & | GetUseCachingOfBSplineWeights () |
| virtual void | SetUseCachingOfBSplineWeights (bool _arg) |
| virtual void | UseCachingOfBSplineWeightsOff () |
| virtual void | UseCachingOfBSplineWeightsOn () |
|
| virtual bool | GetUsePaddingValue () |
| virtual void | SetUsePaddingValue (bool _arg) |
|
| virtual void | GetValueAndDerivative (const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const |
|
| | itkStaticConstMacro (FixedImageDimension, unsigned int, TFixedImage::ImageDimension) |
| | itkStaticConstMacro (MovingImageDimension, unsigned int, TMovingImage::ImageDimension) |
|
| | itkStaticConstMacro (FixedImageDimension, unsigned int, TFixedImage::ImageDimension) |
| | itkStaticConstMacro (MovingImageDimension, unsigned int, TMovingImage::ImageDimension) |
|
| void | ReinitializeSeed (int seed) |
| void | ReinitializeSeed () |
|
| virtual void | SetNumberOfFixedImageSamples (unsigned long numSamples) |
Static Public Member Functions |
| static void | BreakOnError () |
| static Pointer | New () |
|
| static bool | GetGlobalWarningDisplay () |
| static void | GlobalWarningDisplayOff () |
| static void | GlobalWarningDisplayOn () |
| static void | SetGlobalWarningDisplay (bool flag) |
Protected Types |
| typedef std::vector< bool > | BooleanArrayType |
typedef BSplineInterpolateImageFunction<
MovingImageType, CoordinateRepresentationType > | BSplineInterpolatorType |
typedef FixedArray< unsigned
long,::itk::GetImageDimension<
FixedImageType >::ImageDimension > | BSplineParametersOffsetType |
| typedef BSplineTransformType::ParameterIndexArrayType | BSplineTransformIndexArrayType |
| typedef Array2D< IndexValueType > | BSplineTransformIndicesArrayType |
typedef BSplineDeformableTransform<
CoordinateRepresentationType,
::itk::GetImageDimension<
FixedImageType >::ImageDimension,
itkGetStaticConstMacro(DeformationSplineOrder) > | BSplineTransformType |
| typedef Array2D< WeightsValueType > | BSplineTransformWeightsArrayType |
| typedef BSplineTransformType::WeightsType | BSplineTransformWeightsType |
typedef CentralDifferenceImageFunction<
MovingImageType, CoordinateRepresentationType > | DerivativeFunctionType |
| typedef std::vector< FixedImageSamplePoint > | FixedImageSampleContainer |
typedef CovariantVector< double,
itkGetStaticConstMacro(MovingImageDimension) > | ImageDerivativesType |
| typedef BSplineTransformIndexArrayType::ValueType | IndexValueType |
| typedef std::vector< MovingImagePointType > | MovingImagePointArrayType |
| typedef MultiThreader | MultiThreaderType |
| typedef BSplineTransformWeightsType::ValueType | WeightsValueType |
Protected Member Functions |
| void | ComputeHistogram (const TransformParametersType ¶meters, unsigned int parameter, double step, HistogramType &histogram) const |
| void | ComputeHistogram (const TransformParametersType ¶meters, HistogramType &histogram) const |
| virtual void | ComputeImageDerivatives (const MovingImagePointType &mappedPoint, ImageDerivativesType &gradient, unsigned int threadID) const |
| void | CopyHistogram (HistogramType &target, HistogramType &source) const |
| virtual MeasureType | EvaluateMeasure (HistogramType &histogram) const=0 |
| virtual MeasureType | EvaluateMeasure (HistogramType &histogram) const |
| void | FormTrainingHistogram () throw (ExceptionObject) |
| void | GetValueAndDerivativeMultiThreadedInitiate (void) const |
| void | GetValueAndDerivativeMultiThreadedPostProcessInitiate (void) const |
| void | GetValueAndDerivativeMultiThreadedPreProcessInitiate (void) const |
| void | GetValueAndDerivativeThread (unsigned int threadID) const |
| virtual void | GetValueAndDerivativeThreadPostProcess (unsigned int, bool) const |
| virtual void | GetValueAndDerivativeThreadPreProcess (unsigned int, bool) const |
| virtual bool | GetValueAndDerivativeThreadProcessSample (unsigned int, unsigned long, const MovingImagePointType &, double, const ImageDerivativesType &) const |
| void | GetValueMultiThreadedInitiate (void) const |
| void | GetValueMultiThreadedPostProcessInitiate (void) const |
| void | GetValueMultiThreadedPreProcessInitiate (void) const |
| void | GetValueThread (unsigned int threadID) const |
| virtual void | GetValueThreadPostProcess (unsigned int, bool) const |
| virtual void | GetValueThreadPreProcess (unsigned int threadID, bool withinSampleThread) const |
| virtual bool | GetValueThreadProcessSample (unsigned int, unsigned long, const MovingImagePointType &, double) const |
| | itkStaticConstMacro (DeformationSplineOrder, unsigned int, 3) |
| void | NumberOfFixedImageSamplesUpdated () |
| virtual void | PreComputeTransformValues (void) |
| bool | PrintObservers (std::ostream &os, Indent indent) const |
| virtual void | SampleFixedImageDomain (FixedImageSampleContainer &samples) const |
| virtual void | SampleFixedImageIndexes (FixedImageSampleContainer &samples) |
| virtual void | SampleFullFixedImageDomain (FixedImageSampleContainer &samples) |
| void | SynchronizeTransforms () const |
| virtual void | TransformPoint (unsigned int sampleNumber, MovingImagePointType &mappedPoint, bool &sampleWithinSupportRegion, double &movingImageValue, unsigned int threadID) const |
| virtual void | TransformPointWithDerivatives (unsigned int sampleNumber, MovingImagePointType &mappedPoint, bool &sampleWithinSupportRegion, double &movingImageValue, ImageDerivativesType &gradient, unsigned int threadID) const |
|
| virtual void | PrintHeader (std::ostream &os, Indent indent) const |
| virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
Static Protected Member Functions |
| static ITK_THREAD_RETURN_TYPE | GetValueAndDerivativeMultiThreaded (void *arg) |
| static ITK_THREAD_RETURN_TYPE | GetValueAndDerivativeMultiThreadedPostProcess (void *arg) |
| static ITK_THREAD_RETURN_TYPE | GetValueAndDerivativeMultiThreadedPreProcess (void *arg) |
| static ITK_THREAD_RETURN_TYPE | GetValueMultiThreaded (void *arg) |
| static ITK_THREAD_RETURN_TYPE | GetValueMultiThreadedPostProcess (void *arg) |
| static ITK_THREAD_RETURN_TYPE | GetValueMultiThreadedPreProcess (void *arg) |
Protected Attributes |
| BSplineInterpolatorType::Pointer | m_BSplineInterpolator |
| BSplineParametersOffsetType | m_BSplineParametersOffset |
| MovingImagePointArrayType | m_BSplinePreTransformPointsArray |
| BSplineTransformType::Pointer | m_BSplineTransform |
| BSplineTransformIndexArrayType | m_BSplineTransformIndices |
| BSplineTransformIndicesArrayType | m_BSplineTransformIndicesArray |
| BSplineTransformWeightsType | m_BSplineTransformWeights |
| BSplineTransformWeightsArrayType | m_BSplineTransformWeightsArray |
| bool | m_ComputeGradient |
| DerivativeFunctionType::Pointer | m_DerivativeCalculator |
| double | m_Epsilon |
| FixedImageConstPointer | m_FixedImage |
| FixedImageIndexContainer | m_FixedImageIndexes |
| FixedImageMaskPointer | m_FixedImageMask |
| FixedImageSampleContainer | m_FixedImageSamples |
| FixedImagePixelType | m_FixedImageSamplesIntensityThreshold |
| GradientImagePointer | m_GradientImage |
| HistogramSizeType | m_HistogramSize |
| InterpolatorPointer | m_Interpolator |
| bool | m_InterpolatorIsBSpline |
| MeasurementVectorType | m_LowerBound |
| bool | m_LowerBoundSetByUser |
| MovingImageConstPointer | m_MovingImage |
| MovingImageMaskPointer | m_MovingImageMask |
| unsigned long | m_NumberOfFixedImageSamples |
| unsigned long | m_NumberOfMovingImageSamples |
| unsigned long | m_NumberOfParameters |
| unsigned long | m_NumberOfPixelsCounted |
| unsigned int | m_NumberOfThreads |
| unsigned long | m_NumBSplineWeights |
| ParametersType | m_Parameters |
| int | m_RandomSeed |
| volatile int | m_ReferenceCount |
| SimpleFastMutexLock | m_ReferenceCountLock |
| bool | m_ReseedIterator |
| MultiThreaderType::Pointer | m_Threader |
| BSplineTransformIndexArrayType * | m_ThreaderBSplineTransformIndices |
| BSplineTransformWeightsType * | m_ThreaderBSplineTransformWeights |
| unsigned int | m_ThreaderChunkSize |
| unsigned int * | m_ThreaderNumberOfMovingImageSamples |
| MultiThreaderParameterType | m_ThreaderParameter |
| unsigned int | m_ThreaderSizeOfLastChunk |
| TransformPointer * | m_ThreaderTransform |
| TransformPointer | m_Transform |
| bool | m_TransformIsBSpline |
| MeasurementVectorType | m_UpperBound |
| double | m_UpperBoundIncreaseFactor |
| bool | m_UpperBoundSetByUser |
| bool | m_UseAllPixels |
| bool | m_UseCachingOfBSplineWeights |
| bool | m_UseFixedImageIndexes |
| bool | m_UseFixedImageSamplesIntensityThreshold |
| BooleanArrayType | m_WithinBSplineSupportRegionArray |
| bool | m_WithinThreadPostProcess |
| bool | m_WithinThreadPreProcess |