Rectifier quelque information sur opencv

hb2012 Messages postés 15 Date d'inscription vendredi 11 mai 2012 Statut Membre Dernière intervention 3 septembre 2015 - 21 juin 2012 à 12:18
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 - 23 juin 2012 à 14:17
slt mes amis,
Tout d'abord, je suis entrain de travailler sur l'opencv pour faire le suivi d'un objet plus exactement un face , et pour cela mon démarche prenne comme des images pour construire une séquence vidéo ,car je vient d'utiliser chaque image à coté pour faire appliquer la méthode de détection. Et bain celle ci le code:
#include "stdafx.h"
#include <cv.h>
 
#include <stdio.h>
#include <cxcore.h>
#include <highgui.h>
using namespace std;
CvHaarClassifierCascade* cascade = 0;
CvMemStorage* storage = 0;
int _tmain(int  argc, _TCHAR* argv[])
{  int i;
    for (int k=0;k<100;k++)
{  
std::string varimg;
char format[] = "franck_000%d.jpg";
char filename[sizeof format+100];
sprintf(filename,format,k);
varimg = filename ;
IplImage*imgw = cvLoadImage( varimg.c_str() );
IplImage* gray;
 
  /* Load the face detector and create memory storage
    `cascade` and `storage` are global variables */
  if (!cascade) {
    char* file = "C:/OpenCV-2.1.0/data/haarcascades/haarcascade_frontalface_alt.xml";
    cascade = (CvHaarClassifierCascade*) cvLoad(file, 0, 0, 0);
    storage = cvCreateMemStorage(0);
  }
/* Convert multichannel to 1-channel for faster processing */
  if (imgw->nChannels == 1) {
    gray == cvClone(imgw);
  } else {
    gray = cvCreateImage(cvGetSize(imgw), imgw->depth, 1);
    cvCvtColor(imgw, gray, CV_RGB2GRAY);
  }
 /* detect faces */
  CvSeq* faces = cvHaarDetectObjects(gray,cascade,storage,1.1,3,CV_HAAR_DO_CANNY_PRUNING,cvSize(20, 20));
  int i;
/* Draw red boxes on the faces found */
  for( i = 0; i < (faces ? faces->total : 0); i++ ) {
    CvRect* r = (CvRect*)cvGetSeqElem(faces, i);
 cvRectangle(imgw,cvPoint(r->x, r->y),cvPoint(r->x + r->width, r->y + r->height),CV_RGB(255, 0, 0),3, 8, 0);
  }
 cvNamedWindow( "Example1", CV_WINDOW_AUTOSIZE );
    cvShowImage("Example1",imgw);
    cvWaitKey(1);
cvReleaseImage(&imgw);
}
    return 0;
}

la problème est que l'affiche de résultat n'est pas totalement correcte, il m'a donné une séquence tréééés lente ce qui n'est pas le cas avant que j'ai appliquer la détection.
svp si je ne suis dans le bon chemin du forum me dire.
cordialement.

1 réponse

katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
23 juin 2012 à 14:17
Salut, une question comporte généralement un point d'interrogation. Ca aide à comprendre la question ;)

De plus "Et bain celle ci le code" requiert une traduction française ou anglaise ...
0
Rejoignez-nous