X-Boost  2.3.8
register.h
Go to the documentation of this file.
1 /* XBoost: Ada-Boost and Friends on Haar/ICF/HOG Features, Library and ToolBox
2  *
3  * Copyright (c) 2008-2014 Paolo Medici <medici@ce.unipr.it>
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the
17  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18  * Boston, MA 02111-1307, USA.
19  */
20 
21 #ifndef _XBOOST_REGISTER_H
22 #define _XBOOST_REGISTER_H
23 
28 #include <string>
29 #include "ImageClassifier.h"
30 #include "ObjectDetector.h"
31 
33 typedef ImageClassifier *(* ClassifierFactory)(std::istream &);
34 typedef ObjectDetector *(* DetectorFactory)(const char *filename);
35 
36 
38 bool register_classifier_factory(const std::string & name, ClassifierFactory, DetectorFactory);
39 
40 namespace detail {
41 
43  template<class T>
44  ImageClassifier *ic_builder(std::istream & in)
45  {
46  return new T(in);
47  }
48  template<class T>
49  ObjectDetector *od_builder(const char *filename)
50  {
51  return new T(filename);
52  }
53 
54 }
55 
61 template<class A, class B>
63 {
64  return register_classifier_factory(A::signature(), &detail::ic_builder<A>, &detail::od_builder<B>);
65 }
66 
67 #endif
"Binary" Classifier, virtual class
Definition: ImageClassifier.h:37
bool register_classifier_factory_wrapper()
Definition: register.h:62
ImageClassifier *(* ClassifierFactory)(std::istream &)
Definition: register.h:33
bool register_classifier_factory(const std::string &name, ClassifierFactory, DetectorFactory)
register a ClassifierFactory in the factory pool
virtual classes to work on classifier. ObjectDetector exploits all the performance of classifier...
virtual classes to work on classifier. ImageClassifier is the simplest one, computing the response im...
Definition: ObjectDetector.h:82