00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
#ifndef __itkMaximumDecisionRule_h
00018
#define __itkMaximumDecisionRule_h
00019
00020
#include "itkWin32Header.h"
00021
00022
#include <vector>
00023
#include "itkDecisionRuleBase.h"
00024
00025
namespace itk{
00026
00032 class ITKCommon_EXPORT MaximumDecisionRule :
00033
public DecisionRuleBase
00034 {
00035
public:
00037 typedef MaximumDecisionRule
Self ;
00038 typedef DecisionRuleBase Superclass;
00039 typedef SmartPointer<Self> Pointer;
00040 typedef SmartPointer<const Self> ConstPointer;
00041
00043
itkTypeMacro(MaximumDecisionRule,
DecisionRuleBase);
00044
00046
itkNewMacro(
Self) ;
00047
00048
unsigned int Evaluate(std::vector< double > &discriminantScores) ;
00049
00050
protected:
00051 MaximumDecisionRule() {}
00052 virtual ~MaximumDecisionRule() {}
00053
void PrintSelf(std::ostream& os,
Indent indent)
const ;
00054 } ;
00055
00056 inline unsigned int MaximumDecisionRule::Evaluate(std::vector< double >
00057 &discriminantScores)
00058 {
00059
double max = discriminantScores[0] ;
00060
unsigned int maxIndex = 0 ;
00061
unsigned int i ;
00062
for (i = 1 ; i < discriminantScores.size() ; i++)
00063 {
00064
if (discriminantScores[i] > max)
00065 {
00066 max = discriminantScores[i] ;
00067 maxIndex = i ;
00068 }
00069 }
00070
return maxIndex ;
00071 }
00072
00073 }
00074
00075
#endif
00076
00077
00078
00079
00080
00081
00082