Ignore:
Timestamp:
07/23/2009 01:04:04 PM (10 years ago)
Author:
dave
Message:

added face classifier application, not working yet

File:
1 edited

Legend:

Unmodified
Added
Removed
  • foam/trunk/vision/src/PCAClassifier.cpp

    r89 r94  
    1515// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
    1616 
     17#include <cfloat> 
    1718#include "PCAClassifier.h" 
    1819 
    19 PCAClassifier::PCAClassifier(unsigned int FeatureSize) : 
    20 Classifier(FeatureSize) 
     20using namespace std; 
     21 
     22PCAClassifier::PCAClassifier(const PCA &pca) : 
     23Classifier(pca.GetFeatureSize()), 
     24m_PCA(pca) 
    2125{ 
    2226} 
     
    2630} 
    2731 
     32void PCAClassifier::AddFeature(int group, const Vector<float> &f) 
     33{ 
     34        AddFeatureToGroup(group, m_PCA.Project(f)); 
     35} 
    2836 
     37int PCAClassifier::Classify(const Vector<float> &f, float &error) 
     38{ 
     39        Vector<float> params=m_PCA.Project(f); 
     40 
     41        // find the closest point in all the group means 
     42        error = FLT_MAX; 
     43        int ret=-1; 
     44        for (map<int,Vector<float> >::iterator i=m_GroupMeans.begin();  
     45                i!=m_GroupMeans.end(); ++i) 
     46        { 
     47                float d=params.DistanceFrom(i->second); 
     48                if (d<error) 
     49                { 
     50                        ret=i->first; 
     51                        error=d; 
     52                } 
     53        } 
     54         
     55        return ret; 
     56} 
     57 
     58void PCAClassifier::Refresh() 
     59{ 
     60         
     61} 
     62 
Note: See TracChangeset for help on using the changeset viewer.