source: foam/trunk/vision/src/LDAClassifier.h @ 86

Revision 86, 1.5 KB checked in by dave, 11 years ago (diff)

lots of code added - pca implementation for eigenfaces and lda started

Line 
1// Copyright (C) 2009 foam
2//
3// This program is free software; you can redistribute it and/or modify
4// it under the terms of the GNU General Public License as published by
5// the Free Software Foundation; either version 2 of the License, or
6// (at your option) any later version.
7//
8// This program is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11// GNU General Public License for more details.
12//
13// You should have received a copy of the GNU General Public License
14// along with this program; if not, write to the Free Software
15// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
16
17#include <vector>
18#include <map>
19#include <set>
20#include "Vector.h"
21#include "Matrix.h"
22#include "Classifier.h"
23
24#ifndef FOAM_LDA_CLASSIFIER
25#define FOAM_LDA_CLASSIFIER
26
27// A linear discriminant analysis classifier for arbitrary data sets
28
29class LDAClassifier : public Classifier
30{
31public:
32        LDAClassifier(unsigned int FeatureSize);
33        ~LDAClassifier();
34
35        virtual int Classify(const Vector<float> &f);
36
37private:
38
39        void CalcGroupMeans();
40        void CalcMeanCorrected();
41        void CalcCovariance();
42        void CalcPooledCovariance();
43        void CalcPriorProbablity();
44       
45        std::map<int,Vector<float> > m_GroupMean;
46        std::map<int,Matrix<float> > m_MeanCorrected;
47        std::map<int,Matrix<float> > m_Covariance;
48        //Matrix<T> m_PooledCovariance;
49        //Vector<T> m_PriorProbability;
50
51};
52
53#endif
Note: See TracBrowser for help on using the repository browser.