00001 /*========================================================================= 00002 00003 Program: F.R.E.E. - flexible registration evaluation engine 00004 Version: v.1.0.0 00005 Date: $Date: 2006/09/01 12:00:00 $ 00006 Module: $RCSfile: freImageClassificationSOMetricMonitor.h,v $ 00007 Language: C++ 00008 00009 00010 00011 Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics, 00012 Institute for Medical Biometry and Informatics, University of Heidelberg, 00013 Germany). All rights reserved. 00014 See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm 00015 for details. 00016 00017 This software is distributed WITHOUT ANY WARRANTY; without even 00018 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00019 PURPOSE. See the above copyright notices for more information. 00020 00021 =========================================================================*/ 00022 #ifndef __freImageClassificationSOMetricMonitor_h 00023 #define __freImageClassificationSOMetricMonitor_h 00024 00025 #include "freSetupOptimizationMetricMonitorBase.h" 00026 00027 namespace FREE 00028 { 00037 class ImageClassificationSOMetricResult: public SetupOptimizationMetricResult 00038 { 00039 public: 00040 typedef std::vector<double> PointErrorListType; 00041 00042 void SetTP(const unsigned long& count) {m_TP = count;}; 00043 void SetFP(const unsigned long& count) {m_FP = count;}; 00044 void SetTN(const unsigned long& count) {m_TN = count;}; 00045 void SetFN(const unsigned long& count) {m_FN = count;}; 00046 void SetDuration(const unsigned long& dur) {m_Duration = dur;}; 00047 00048 const unsigned long& GetTP() const { return m_TP;}; 00049 const unsigned long& GetFP() const { return m_FP;}; 00050 const unsigned long& GetTN() const { return m_TN;}; 00051 const unsigned long& GetFN() const { return m_FN;}; 00052 const unsigned long& GetDuration() const { return m_Duration;}; 00053 00054 unsigned long& GetTP() { return m_TP;}; 00055 unsigned long& GetFP() { return m_FP;}; 00056 unsigned long& GetTN() { return m_TN;}; 00057 unsigned long& GetFN() { return m_FN;}; 00058 unsigned long& GetDuration() { return m_Duration;}; 00059 00060 virtual void Reset(); 00061 00062 ImageClassificationSOMetricResult(); 00063 protected: 00065 unsigned long m_TP; 00067 unsigned long m_FP; 00069 unsigned long m_TN; 00071 unsigned long m_FN; 00072 00074 unsigned long m_Duration; 00075 }; 00076 00089 class ITK_EXPORT ImageClassificationSOMetricMonitor : 00090 public SetupOptimizationMetricMonitorBase<ImageClassificationSOMetricResult> 00091 { 00092 public: 00094 typedef ImageClassificationSOMetricMonitor Self; 00095 typedef SetupOptimizationMetricMonitorBase<ImageClassificationSOMetricResult> Superclass; 00096 typedef itk::SmartPointer<Self> Pointer; 00097 typedef itk::SmartPointer<const Self> ConstPointer; 00098 00099 //Class containing the results of one adaptation evaluation 00100 //depends on the monitored metric and therefore a template. 00101 typedef ImageClassificationSOMetricResult ResultType; 00102 00104 itkTypeMacro( ImageClassificationSOMetricMonitor, SetupOptimizationMetricMonitorBase<ImageClassificationSOMetricResult> ); 00105 00106 itkNewMacro( Self ); 00107 00108 protected: 00109 00110 ImageClassificationSOMetricMonitor(); 00111 00112 virtual ~ImageClassificationSOMetricMonitor(); 00113 00114 virtual void InsertEvaluationResults(const ResultType& results); 00115 00116 virtual void CopyAdaptationResults(const ResultIndexType& index, ResultType& results) const; 00117 00118 virtual void EnlistResultsToStatistic(const ResultType& results, StatisticEntry& entry); 00119 00120 virtual void EnlistDictionaryEntries(StatisticDictionary& dictionary); 00121 00122 //The folloing members are secured via m_ResultMutex and should therefore only acessed via 00123 //InsertEvaluationResults() and CopyAdaptationResults() 00125 std::vector<unsigned long> m_TPs; 00127 std::vector<unsigned long> m_FPs; 00129 std::vector<unsigned long> m_TNs; 00131 std::vector<unsigned long> m_FNs; 00132 00134 std::vector<unsigned long> m_Durations; 00135 00136 private: 00137 ImageClassificationSOMetricMonitor(const Self&); //purposely not implemented 00138 void operator=(const Self&); //purposely not implemented 00139 }; 00140 00141 } // end namespace FREE 00142 00143 #endif 00144 00145 00146
1.5.3 written by Dimitri van Heesch,
© 1997-2000