Rectifier quelque information sur opencv

Signaler
Messages postés
15
Date d'inscription
vendredi 11 mai 2012
Statut
Membre
Dernière intervention
3 septembre 2015
-
katsankat
Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
-
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

Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
3
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 ...