00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef MITKMETRICPARAMETERS_H
00019 #define MITKMETRICPARAMETERS_H
00020
00021 #include <itkObjectFactory.h>
00022 #include "MitkRigidRegistrationExports.h"
00023 #include "mitkCommon.h"
00024
00025 namespace mitk {
00026
00042 class MITK_RIGIDREGISTRATION_EXPORT MetricParameters : public itk::Object
00043 {
00044 public:
00045 mitkClassMacro(MetricParameters,::itk::Object);
00046 itkNewMacro(Self);
00047
00051 enum MetricType {
00052 MEANSQUARESIMAGETOIMAGEMETRIC = 0,
00053 NORMALIZEDCORRELATIONIMAGETOIMAGEMETRIC = 1,
00054 GRADIENTDIFFERENCEIMAGETOIMAGEMETRIC = 2,
00055 KULLBACKLEIBLERCOMPAREHISTOGRAMIMAGETOIMAGEMETRIC = 3,
00056 CORRELATIONCOEFFICIENTHISTOGRAMIMAGETOIMAGEMETRIC = 4,
00057 MEANSQUARESHISTOGRAMIMAGETOIMAGEMETRIC = 5,
00058 MUTUALINFORMATIONHISTOGRAMIMAGETOIMAGEMETRIC = 6,
00059 NORMALIZEDMUTUALINFORMATIONHISTOGRAMIMAGETOIMAGEMETRIC = 7,
00060 MATTESMUTUALINFORMATIONIMAGETOIMAGEMETRIC = 8,
00061 MEANRECIPROCALSQUAREDIFFERENCEIMAGETOIMAGEMETRIC = 9,
00062 MUTUALINFORMATIONIMAGETOIMAGEMETRIC = 10,
00063 MATCHCARDINALITYIMAGETOIMAGEMETRIC = 11,
00064 KAPPASTATISTICIMAGETOIMAGEMETRIC = 12
00065 };
00066
00070 itkSetMacro( Metric, int );
00074 itkGetMacro( Metric, int );
00075
00079 itkSetMacro( ComputeGradient, bool );
00083 itkGetMacro( ComputeGradient, bool );
00084
00088 itkSetMacro( NumberOfHistogramBinsKullbackLeiblerCompareHistogram, unsigned int );
00089
00093 itkGetMacro( NumberOfHistogramBinsKullbackLeiblerCompareHistogram, unsigned int );
00094
00098 itkSetMacro( NumberOfHistogramBinsCorrelationCoefficientHistogram, unsigned int );
00099
00103 itkGetMacro( NumberOfHistogramBinsCorrelationCoefficientHistogram, unsigned int );
00104
00108 itkSetMacro( NumberOfHistogramBinsMeanSquaresHistogram, unsigned int );
00109
00113 itkGetMacro( NumberOfHistogramBinsMeanSquaresHistogram, unsigned int );
00114
00118 itkSetMacro( NumberOfHistogramBinsMutualInformationHistogram, unsigned int );
00119
00123 itkGetMacro( NumberOfHistogramBinsMutualInformationHistogram, unsigned int );
00124
00128 itkSetMacro( NumberOfHistogramBinsNormalizedMutualInformationHistogram, unsigned int );
00129
00133 itkGetMacro( NumberOfHistogramBinsNormalizedMutualInformationHistogram, unsigned int );
00134
00138 itkSetMacro( SpatialSamplesMattesMutualInformation, unsigned int );
00139
00143 itkGetMacro( SpatialSamplesMattesMutualInformation, unsigned int );
00144
00148 itkSetMacro( UseSamplesMattesMutualInformation, bool );
00149
00153 itkGetMacro( UseSamplesMattesMutualInformation, bool );
00154
00158 itkSetMacro( NumberOfHistogramBinsMattesMutualInformation, unsigned int );
00159
00163 itkGetMacro( NumberOfHistogramBinsMattesMutualInformation, unsigned int );
00164
00168 itkSetMacro( LambdaMeanReciprocalSquareDifference, unsigned int );
00169
00173 itkGetMacro( LambdaMeanReciprocalSquareDifference, unsigned int );
00174
00178 itkSetMacro( SpatialSamplesMutualInformation, unsigned int );
00179
00183 itkGetMacro( SpatialSamplesMutualInformation, unsigned int );
00184
00188 itkSetMacro( FixedImageStandardDeviationMutualInformation, float );
00189
00193 itkGetMacro( FixedImageStandardDeviationMutualInformation, float );
00194
00198 itkSetMacro( MovingImageStandardDeviationMutualInformation, float );
00199
00203 itkGetMacro( MovingImageStandardDeviationMutualInformation, float );
00204
00208 itkSetMacro( UseNormalizerAndSmootherMutualInformation, bool );
00209
00213 itkGetMacro( UseNormalizerAndSmootherMutualInformation, bool );
00214
00218 itkSetMacro( FixedSmootherVarianceMutualInformation, float );
00219
00223 itkGetMacro( FixedSmootherVarianceMutualInformation, float );
00224
00228 itkSetMacro( MovingSmootherVarianceMutualInformation, float );
00229
00233 itkGetMacro( MovingSmootherVarianceMutualInformation, float );
00234
00235 protected:
00236 MetricParameters();
00237 ~MetricParameters() {};
00238
00239 int m_Metric;
00240 bool m_ComputeGradient;
00241
00242 unsigned int m_NumberOfHistogramBinsKullbackLeiblerCompareHistogram;
00243
00244 unsigned int m_NumberOfHistogramBinsCorrelationCoefficientHistogram;
00245
00246 unsigned int m_NumberOfHistogramBinsMeanSquaresHistogram;
00247
00248 unsigned int m_NumberOfHistogramBinsMutualInformationHistogram;
00249
00250 unsigned int m_NumberOfHistogramBinsNormalizedMutualInformationHistogram;
00251
00252 unsigned int m_NumberOfHistogramBinsMattesMutualInformation;
00253 bool m_UseSamplesMattesMutualInformation;
00254 unsigned int m_SpatialSamplesMattesMutualInformation;
00255
00256 unsigned int m_LambdaMeanReciprocalSquareDifference;
00257
00258 unsigned int m_SpatialSamplesMutualInformation;
00259 float m_FixedImageStandardDeviationMutualInformation;
00260 float m_MovingImageStandardDeviationMutualInformation;
00261 bool m_UseNormalizerAndSmootherMutualInformation;
00262 float m_FixedSmootherVarianceMutualInformation;
00263 float m_MovingSmootherVarianceMutualInformation;
00264 };
00265
00266 }
00267
00268 #endif // MITKMETRICPARAMETERS_H