rectifier quelque information sur opencv

rectifier quelque information sur opencv - C++ - Programmation

Marsh Posté le 21-06-2012 à 12:17:59    

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:

Code :
  1. #include "stdafx.h"
  2. #include <cv.h>
  3. #include <stdio.h>
  4. #include <cxcore.h>
  5. #include <highgui.h>
  6. using namespace std;
  7. CvHaarClassifierCascade* cascade = 0;
  8. CvMemStorage* storage = 0;
  9. int _tmain(int  argc, _TCHAR* argv[])
  10. int i;
  11.     for (int k=0;k<100;k++)
  12. std::string varimg;
  13. char format[] = "franck_000%d.jpg";
  14. char filename[sizeof format+100];
  15. sprintf(filename,format,k);
  16. varimg = filename ;
  17. IplImage*imgw = cvLoadImage( varimg.c_str() );
  18. IplImage* gray;
  19.   /* Load the face detector and create memory storage
  20.     `cascade` and `storage` are global variables */
  21.   if (!cascade) {
  22.     char* file = "C:/OpenCV-2.1.0/data/haarcascades/haarcascade_frontalface_alt.xml";
  23.     cascade = (CvHaarClassifierCascade*) cvLoad(file, 0, 0, 0);
  24.     storage = cvCreateMemStorage(0);
  25.   }
  26. /* Convert multichannel to 1-channel for faster processing */
  27.   if (imgw->nChannels == 1) {
  28.     gray == cvClone(imgw);
  29.   } else {
  30.     gray = cvCreateImage(cvGetSize(imgw), imgw->depth, 1);
  31.     cvCvtColor(imgw, gray, CV_RGB2GRAY);
  32.   }
  33. /* detect faces */
  34.   CvSeq* faces = cvHaarDetectObjects(gray,cascade,storage,1.1,3,CV_HAAR_DO_CANNY_PRUNING,cvSize(20, 20));
  35.   int i;
  36. /* Draw red boxes on the faces found */
  37.   for( i = 0; i < (faces ? faces->total : 0); i++ ) {
  38.     CvRect* r = (CvRect*)cvGetSeqElem(faces, i);
  39. cvRectangle(imgw,cvPoint(r->x, r->y),cvPoint(r->x + r->width, r->y + r->height),CV_RGB(255, 0, 0),3, 8, 0);
  40.   }
  41. cvNamedWindow( "Example1", CV_WINDOW_AUTOSIZE );
  42.     cvShowImage("Example1",imgw);
  43.     cvWaitKey(1);
  44. cvReleaseImage(&imgw);
  45. }
  46.     return 0;
  47. }


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.  

Reply

Marsh Posté le 21-06-2012 à 12:17:59   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed