Inheritance diagram for itk::NormalizedMutualInformationHistogramImageToImageMetric< TFixedImage, TMovingImage >:
The type of Normalize Mutual Information implemented in this class is given by the equation
Where $ H(A) $ is the entropy of image $ A $, $ H(B) $ is the entropy of image $ B $, and $ H(A,B) $ is the joing entropy of images $ A $ and $ B $.
"Medical Image Registration" by Hajnal, Hill and Hawkes.
The implementation of this class corresponds to equation (30) in Chapter 3 of this book. Note that by slightly changing this class it will be trivial to compute the Normalized Mutual Information measures defined in equations (28) and (29) of the same book.
This class is templated over the type of the fixed and moving images to be compared.
|
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 FixedImageType::RegionType | FixedImageRegionType |
| typedef FixedImageType::RegionType | FixedImageRegionType |
| typedef Superclass::FixedImageType | FixedImageType |
| typedef Superclass::GradientPixelType | GradientPixelType |
| typedef HistogramType::FrequencyType | HistogramFrequencyType |
| typedef HistogramType::Iterator | HistogramIteratorType |
| typedef HistogramType::MeasurementVectorType | HistogramMeasurementVectorType |
| typedef HistogramType::Pointer | HistogramPointer |
| typedef HistogramType::SizeType | HistogramSizeType |
| typedef Superclass::HistogramType | HistogramType |
| typedef Superclass::InputPointType | InputPointType |
| typedef InterpolatorType::Pointer | InterpolatorPointer |
| typedef InterpolatorType::Pointer | InterpolatorPointer |
typedef InterpolateImageFunction<
MovingImageType, CoordinateRepresentationType > | InterpolatorType |
typedef InterpolateImageFunction<
MovingImageType, CoordinateRepresentationType > | 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 NormalizedMutualInformationHistogramImageToImageMetric | Self |
typedef HistogramImageToImageMetric<
TFixedImage, TMovingImage > | Superclass |
| 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 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 |
| 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 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 | 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 | 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 |
| 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 |
| void | PrintSelf (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 |
| 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 |