/vol/vipdata/irtk/packages/registration/include/irtkGenericHistogramSimilarityMetric.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _IRTKGENERICHISTOGRAMSIMILARITYMETRIC_H
00014
00015 #define _IRTKGENERICHISTOGRAMSIMILARITYMETRIC_H
00016
00026 class irtkGenericHistogramSimilarityMetric : public irtkHistogramSimilarityMetric
00027 {
00028
00030 irtkSimilarityMeasure _SimilarityMeasure;
00031
00032 public:
00033
00035 irtkGenericHistogramSimilarityMetric(irtkSimilarityMeasure = MI, int = 64, int = 64);
00036
00038 virtual void Reset();
00039
00042 virtual void Reset(irtkGenericHistogramSimilarityMetric& metric);
00043
00047 virtual void PutMin(double targetMin, double sourceMin);
00048
00052 virtual void GetMin(double *targetMin, double *sourceMin) const;
00053
00057 virtual void PutMax(double targetMax, double sourceMax);
00058
00062 virtual void GetMax(double *targetMax, double *sourceMax) const;
00063
00068 virtual void Add(int targetBin, int sourceBin, int count = 1);
00069
00074 virtual void Delete(int targetBin, int sourceBin, int count = 1);
00075
00077 virtual int GetNumberOfBinsX() const;
00078
00080 virtual int GetNumberOfBinsY() const;
00081
00083 virtual int NumberOfSamples() const;
00084
00087 virtual void SetMeasure(irtkSimilarityMeasure measure);
00088
00090 virtual irtkSimilarityMeasure GetMeasure() const;
00091
00093 virtual double Evaluate();
00094
00095 };
00096
00097 inline irtkGenericHistogramSimilarityMetric::irtkGenericHistogramSimilarityMetric(irtkSimilarityMeasure SimilarityMeasure, int target_nbins, int source_nbins) : irtkHistogramSimilarityMetric(target_nbins, source_nbins)
00098 {
00099 _SimilarityMeasure = SimilarityMeasure;
00100 }
00101
00102 inline void irtkGenericHistogramSimilarityMetric::Reset()
00103 {
00104 this->_histogram->Reset();
00105 }
00106
00107 inline void irtkGenericHistogramSimilarityMetric::Reset(irtkGenericHistogramSimilarityMetric& metric)
00108 {
00109 this->_histogram->Reset(*(metric._histogram));
00110 }
00111
00112 inline void irtkGenericHistogramSimilarityMetric::PutMin(double targetMin, double sourceMin)
00113 {
00114 this->_histogram->PutMin(targetMin, sourceMin);
00115 }
00116
00117 inline void irtkGenericHistogramSimilarityMetric::GetMin(double *targetMin, double *sourceMin) const
00118 {
00119 this->_histogram->GetMin(targetMin, sourceMin);
00120 }
00121
00122 inline void irtkGenericHistogramSimilarityMetric::PutMax(double targetMax, double sourceMax)
00123 {
00124 this->_histogram->PutMax(targetMax, sourceMax);
00125 }
00126
00127 inline void irtkGenericHistogramSimilarityMetric::GetMax(double *targetMax, double *sourceMax) const
00128 {
00129 this->_histogram->GetMax(targetMax, sourceMax);
00130 }
00131
00132 inline void irtkGenericHistogramSimilarityMetric::SetMeasure(irtkSimilarityMeasure measure)
00133 {
00134 _SimilarityMeasure = measure;
00135 }
00136
00137 inline irtkSimilarityMeasure irtkGenericHistogramSimilarityMetric::GetMeasure() const
00138 {
00139 return _SimilarityMeasure;
00140 }
00141
00142 inline int irtkGenericHistogramSimilarityMetric::GetNumberOfBinsX() const
00143 {
00144 return this->_histogram->GetNumberOfBinsX();
00145 }
00146
00147 inline int irtkGenericHistogramSimilarityMetric::GetNumberOfBinsY() const
00148 {
00149 return this->_histogram->GetNumberOfBinsY();
00150 }
00151
00152 inline int irtkGenericHistogramSimilarityMetric::NumberOfSamples() const
00153 {
00154 return this->_histogram->NumberOfSamples();
00155 }
00156
00157 inline void irtkGenericHistogramSimilarityMetric::Add(int i, int j, int n)
00158 {
00159 this->_histogram->Add(i, j, n);
00160 }
00161
00162 inline void irtkGenericHistogramSimilarityMetric::Delete(int i, int j, int n)
00163 {
00164 this->_histogram->Delete(i, j, n);
00165 }
00166
00167 #endif