00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkNormalizedMutualInformationHistogramImageToImageMetric_h
00018 #define __itkNormalizedMutualInformationHistogramImageToImageMetric_h
00019
00020 #include "itkHistogramImageToImageMetric.h"
00021
00022 namespace itk
00023 {
00055 template <class TFixedImage, class TMovingImage>
00056 class ITK_EXPORT NormalizedMutualInformationHistogramImageToImageMetric :
00057 public HistogramImageToImageMetric<TFixedImage, TMovingImage>
00058 {
00059 public:
00061 typedef NormalizedMutualInformationHistogramImageToImageMetric Self;
00062 typedef HistogramImageToImageMetric<TFixedImage, TMovingImage> Superclass;
00063 typedef SmartPointer<Self> Pointer;
00064 typedef SmartPointer<const Self> ConstPointer;
00065
00067 itkNewMacro(Self);
00068
00070 itkTypeMacro(NormalizedMutualInformationHistogramImageToImageMetric,
00071 HistogramImageToImageMetric);
00072
00074 typedef typename Superclass::RealType RealType;
00075 typedef typename Superclass::TransformType TransformType;
00076 typedef typename Superclass::TransformPointer TransformPointer;
00077 typedef typename Superclass::TransformParametersType
00078 TransformParametersType;
00079 typedef typename Superclass::TransformJacobianType TransformJacobianType;
00080 typedef typename Superclass::GradientPixelType GradientPixelType;
00081
00082 typedef typename Superclass::MeasureType MeasureType;
00083 typedef typename Superclass::DerivativeType DerivativeType;
00084 typedef typename Superclass::FixedImageType FixedImageType;
00085 typedef typename Superclass::MovingImageType MovingImageType;
00086 typedef typename Superclass::FixedImageConstPointer FixedImageConstPointer;
00087 typedef typename Superclass::MovingImageConstPointer
00088 MovingImageConstPointer;
00089
00090 typedef typename Superclass::HistogramType HistogramType;
00091 typedef typename HistogramType::FrequencyType HistogramFrequencyType;
00092 typedef typename HistogramType::Iterator HistogramIteratorType;
00093 typedef typename HistogramType::MeasurementVectorType
00094 HistogramMeasurementVectorType;
00095
00096 protected:
00099 NormalizedMutualInformationHistogramImageToImageMetric(){}
00100 virtual ~NormalizedMutualInformationHistogramImageToImageMetric(){}
00101
00103 virtual MeasureType EvaluateMeasure(HistogramType& histogram) const;
00104
00105 private:
00106
00107 NormalizedMutualInformationHistogramImageToImageMetric(Self const&);
00108 void operator=(Self const&);
00109 };
00110
00111 }
00112
00113 #ifndef ITK_MANUAL_INSTANTIATION
00114 #include "itkNormalizedMutualInformationHistogramImageToImageMetric.txx"
00115 #endif
00116
00117 #endif // __itkNormalizedMutualInformationHistogramImageToImageMetric_h