Ignore:
Timestamp:
09/09/2009 12:19:44 PM (10 years ago)
Author:
dave
Message:

first pass expression recgn

File:
1 edited

Legend:

Unmodified
Added
Removed
  • foam/trunk/faceclassifier/src/App.cpp

    r112 r113  
    3232App::App(const string &filename) : 
    3333m_Capture(NULL), 
    34 m_Cascade(NULL), 
    35 m_Storage(NULL), 
    3634m_Classifier(NULL), 
    3735m_FaceBank(NULL), 
     
    4341{ 
    4442        m_CtrlPort.open("/faceident-ctrl");  
    45         m_Cascade = (CvHaarClassifierCascade*)cvLoad("haarcascade_frontalface_alt.xml", 0, 0, 0); 
    46         assert(m_Cascade); 
    47         m_Storage = cvCreateMemStorage(0); 
    4843         
    4944        if (filename=="") 
     
    124119void App::Update(Image &camera) 
    125120{        
    126         cvClearMemStorage(m_Storage); 
    127  
    128         int flags=0; 
    129         if (m_Learn) flags|=CV_HAAR_FIND_BIGGEST_OBJECT; 
    130  
    131         CvSeq* faces = cvHaarDetectObjects( camera.m_Image, m_Cascade, m_Storage, 
    132                         1.1, 2, flags 
    133                         //|CV_HAAR_FIND_BIGGEST_OBJECT 
    134                         //|CV_HAAR_DO_ROUGH_SEARCH 
    135                         //|CV_HAAR_DO_CANNY_PRUNING 
    136                         //|CV_HAAR_SCALE_IMAGE 
    137                         , 
    138                         cvSize(30, 30) ); 
    139                  
    140121        /////////////////////////////////// 
    141122        // dispatch from input 
     
    159140        } 
    160141                         
    161         for(int i = 0; i < (faces ? faces->total : 0); i++ ) 
    162         { 
    163                 CvRect* r = (CvRect*)cvGetSeqElem( faces, i ); 
    164                 CvMat small_img_roi; 
    165  
     142        vector<Rect> rects = m_FaceFinder.Find(camera,m_Learn); 
     143        for(vector<Rect>::iterator i = rects.begin(); i!=rects.end(); i++ ) 
     144        { 
    166145                unsigned int ID=999; 
    167146                int imagenum=-1; 
    168147                float confidence=0; 
    169148                // get the face area as a sub image 
    170                 Image face = camera.SubImage(r->x, r->y, r->width, r->height); 
     149                Image face = camera.SubImage(*i); 
    171150                 
    172151                //face.SubMean(); 
     
    198177                        } 
    199178                         
    200                         cvPutText(camera.m_Image, s, cvPoint(r->x,r->y+r->height-5), &m_LargeFont, colors[ID]); 
     179                        cvPutText(camera.m_Image, s, cvPoint(i->x,i->y+i->h-5), &m_LargeFont, colors[ID]); 
    201180 
    202181                        if (!m_Learn) 
     
    206185                } 
    207186 
    208                 cvRectangle(camera.m_Image, cvPoint(r->x,r->y), cvPoint(r->x+r->width,r->y+r->height), colors[0]); 
     187                cvRectangle(camera.m_Image, cvPoint(i->x,i->y), cvPoint(i->x+i->w,i->y+i->h), colors[0]); 
    209188        } 
    210189 
Note: See TracChangeset for help on using the changeset viewer.