const-fixing functions
[mldemos:baraks-mldemos.git] / _AlgorithmsPlugins / OpenCV / classifierMLP.h
1 /*********************************************************************\r
2 MLDemos: A User-Friendly visualization toolkit for machine learning\r
3 Copyright (C) 2010  Basilio Noris\r
4 Contact: mldemos@b4silio.com\r
5 \r
6 This library is free software; you can redistribute it and/or\r
7 modify it under the terms of the GNU Lesser General Public License,\r
8 version 3 as published by the Free Software Foundation.\r
9 \r
10 This library is distributed in the hope that it will be useful, but\r
11 WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
13 Lesser General Public License for more details.\r
14 \r
15 You should have received a copy of the GNU Lesser General Public\r
16 License along with this library; if not, write to the Free\r
17 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
18 *********************************************************************/\r
19 #ifndef _CLASSIFIER_MLP_H_\r
20 #define _CLASSIFIER_MLP_H_\r
21 \r
22 #include <vector>\r
23 #include "classifier.h"\r
24 #include "basicOpenCV.h"\r
25 \r
26 class ClassifierMLP : public Classifier\r
27 {\r
28 private:\r
29         u32 functionType; // 1: sigmoid, 2: gaussian\r
30         u32 neuronCount;\r
31         u32 layerCount;\r
32         float alpha, beta;\r
33         CvANN_MLP *mlp;\r
34 public:\r
35     ClassifierMLP() : functionType(1), neuronCount(2), mlp(0), alpha(0), beta(0){}\r
36         ~ClassifierMLP();\r
37         void Train(std::vector< fvec > samples, ivec labels);\r
38     float Test( const fvec &sample) const ;\r
39     const char *GetInfoString() const ;\r
40         void SetParams(u32 functionType, u32 neuronCount, u32 layerCount, f32 alpha, f32 beta);\r
41 };\r
42 \r
43 #endif // _CLASSIFIER_MLP_H_\r