00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __frePrecisionSOMetric_h
00023 #define __frePrecisionSOMetric_h
00024
00025 #include "freSetupOptimizationMetric.h"
00026
00027 namespace FREE
00028 {
00029
00051 class ITK_EXPORT PrecisionSOMetric : public SetupOptimizationMetric
00052 {
00053 public:
00055 typedef PrecisionSOMetric Self;
00056 typedef SetupOptimizationMetric Superclass;
00057 typedef itk::SmartPointer<Self> Pointer;
00058 typedef itk::SmartPointer<const Self> ConstPointer;
00059
00060 typedef Superclass::DecomposedMeasureType DecomposedMeasureType;
00061
00063 itkTypeMacro( PrecisionSOMetric, SetupOptimizationMetric );
00064
00065 itkNewMacro( Self );
00066
00067 itkSetMacro( SampleSize, unsigned long);
00068 itkGetMacro( SampleSize, unsigned long);
00069
00070 itkSetObjectMacro( EvaluationMetric, SetupOptimizationMetric);
00071 itkGetObjectMacro( EvaluationMetric, SetupOptimizationMetric);
00072
00073 virtual void Initialize();
00074
00075 virtual unsigned int GetNumberOfValues(void) const;
00076
00077 protected:
00078 PrecisionSOMetric();
00079
00080 virtual DecomposedMeasureType ComputeDecomposedValue( const ParametersType & parameters ) const;
00081
00082 void EnlistInterimResultsToStatistic(const unsigned int iIndex,
00083 const DecomposedMeasureType& results,
00084 StatisticEntry& entry) const;
00085
00086 void EnlistDictionaryEntries(StatisticDictionary& dictionary) const;
00087
00088 mutable std::vector<DecomposedMeasureType> m_Measures;
00089
00091 SetupOptimizationMetric::Pointer m_EvaluationMetric;
00092
00093 unsigned long m_SampleSize;
00094
00095 private:
00096 PrecisionSOMetric(const Self&);
00097 void operator=(const Self&);
00098 };
00099
00100 }
00101
00102 #endif
00103
00104
00105