21 #ifndef _BINARY_CLASSIFIER_H
22 #define _BINARY_CLASSIFIER_H
37 template<
class FeatureExtractor,
class Policy>
44 typedef Policy PolicyType;
46 typedef typename Policy::ReturnType ReturnType;
59 template<
class R,
class P1>
62 template<
class R,
class P1,
class P2>
65 template<
class R,
class P0,
class P1,
class P2>
68 Policy::rescale(p0,p0,1);
75 const char *
str()
const {
76 return FeatureExtractor::name;
81 return Policy::signature() +
"-" + FeatureExtractor::signature();
89 template<
class D1,
class D2>
90 inline ReturnType
classify(
const D1 d1,
const D2 d2)
const
92 return Policy::evaluate_feature( FeatureExtractor::response(d1, d2) );
100 return Policy::evaluate_feature( FeatureExtractor::response(d1) );
104 template<
class D1,
class D2>
117 template<
class D1,
class D2>
120 value = FeatureExtractor::response(d1, d2);
121 test = Policy::evaluate_feature(value);
128 FeatureExtractor::rescale(sx,sy);
131 template<
class FeatureType>
132 void export_features(std::vector<FeatureType> & out)
const
134 out.push_back( static_cast<const FeatureType&>(*
this) );
141 template<
class FeatureType,
class Policy>
144 template<
class FeatureType,
class Policy>
145 std::ostream & operator << (std::ostream & out, const BinaryClassifier<FeatureType, Policy> & s);
150 template<
class FeatureType,
class Policy>
153 in >>
static_cast<Policy&
>(s) >> static_cast<FeatureType&>(s);
157 template<
class FeatureType,
class Policy>
158 std::ostream & operator << (std::ostream & out, const BinaryClassifier<FeatureType, Policy> & s)
160 out << static_cast<const Policy&>(s) <<
' ' << static_cast<const FeatureType&>(s);
ReturnType operator()(const D1 d1, const D2 d2) const
classify wrapper.
Definition: BinaryClassifier.h:105
ReturnType classify(const D1 d1, const D2 d2) const
Definition: BinaryClassifier.h:90
BinaryClassifier< typename FeatureExtractor::OptimizedType, Policy > OptimizedType
the optimized type
Definition: BinaryClassifier.h:49
A classifier composed by a Feature Extractor and an Evaluation Policy A "Second Level" classifier...
Definition: BinaryClassifier.h:38
Types involved in boosting.
void rescale(float sx, float sy)
this function permits to change the geometry of haar feature: integral value should be used ...
Definition: BinaryClassifier.h:125
ClassifierType
Definition: Types.h:31
const char * str() const
return the "feature" name (for debug purpose)
Definition: BinaryClassifier.h:75
BinaryClassifier(const R &x, P1 p1)
Definition: BinaryClassifier.h:60
ReturnType classify(const D1 d1) const
Definition: BinaryClassifier.h:98
a FeatureExtractor return a scalar number without relationship with classification ...
Definition: Types.h:35
static const ClassifierType Type
BinaryClassifier inherits type from Policy.
Definition: BinaryClassifier.h:52
void test_and_evalute(int &value, ReturnType &test, const D1 d1, const D2 d2) const
return both feature responde and classify hypothesis
Definition: BinaryClassifier.h:118
static std::string signature()
signature name is the name of provider (for simplicity)
Definition: BinaryClassifier.h:80
BinaryClassifier(const R &x, P0 p0, P1 p1, P2 p2)
Definition: BinaryClassifier.h:66
ReturnType operator()(const D1 d1) const
classify wrapper.
Definition: BinaryClassifier.h:112
BinaryClassifier(const R &x, P1 p1, P2 p2)
Definition: BinaryClassifier.h:63