00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __MaximumRatioDecisionRule_h
00018 #define __MaximumRatioDecisionRule_h
00019
00020 #include "itkWin32Header.h"
00021
00022 #include <vector>
00023 #include "vnl/vnl_matrix.h"
00024
00025 #include "itkNumericTraits.h"
00026 #include "itkDecisionRuleBase.h"
00027
00028 namespace itk {
00029
00044 class ITKCommon_EXPORT MaximumRatioDecisionRule :
00045 public DecisionRuleBase
00046 {
00047 public:
00049 typedef MaximumRatioDecisionRule Self ;
00050 typedef DecisionRuleBase Superclass;
00051 typedef SmartPointer<Self> Pointer;
00052
00054 itkTypeMacro(MaximumRatioDecisionRule, DecisionRuleBase);
00055
00057 itkNewMacro(Self) ;
00058
00059 typedef float APrioriValueType ;
00060 typedef std::vector< APrioriValueType > APrioriVectorType ;
00061
00062
00064 typedef Superclass::VectorType VectorType;
00065 typedef Superclass::ArrayType ArrayType;
00066
00067
00072 virtual unsigned int Evaluate( const VectorType &discriminantScores) const;
00073
00078 virtual unsigned int Evaluate( const ArrayType &discriminantScores) const;
00079
00080
00082 void SetAPriori(APrioriVectorType& values) ;
00083
00084 protected:
00085 MaximumRatioDecisionRule() ;
00086 virtual ~MaximumRatioDecisionRule() {}
00087
00088 private:
00090 unsigned int m_NumberOfClasses ;
00091
00093 vnl_matrix< double > m_APrioriRatioMatrix ;
00094 } ;
00095
00096 }
00097 #endif
00098
00099
00100
00101
00102
00103
00104
00105