begin process at 2012 05 28 18:07:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Multimédia

 > 

détéction des point d'interet d'un visage dans une image


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

détéction des point d'interet d'un visage dans une image

jeudi 24 mars 2011 à 14:13:10 | détéction des point d'interet d'un visage dans une image

marwaMIMImarwa

bonjour

je suis entrain d'implémenter un code en c++ pour détecter le visage et les yeux en utilisant la méthode de détection des points d'interet de harris
mais le code ne détecte pas correctement
voici le code


Code C/C++ :
#include "stdafx.h"
#include <iostream>
using namespace std;
#include "stdio.h"
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include"tchar.h"
#define max_corners 100

     int _tmain(int argc, _TCHAR* argv[])
		 
      {
		  IplImage *img;
          img = cvLoadImage( "photo.jpg" );
		  CvMemStorage* storage = cvCreateMemStorage(0);
		   CvHaarClassifierCascade* cascade_f = (CvHaarClassifierCascade*)cvLoad( "haarcascade_frontalface_alt2.xml" );
		
			/* double scale = 1.0; */ 
			 static CvScalar colors[] = { {{0,0,255}}, {{0,128,255}}, {{0,255,255}}, 
             {{0,255,0}}, {{255,128,0}}, {{255,255,0}}, {{255,0,0}}, {{255,0,255}} };
          /* detect faces */
         
          CvSeq *faces = cvHaarDetectObjects(

              img,            /* l'image source  */

              cascade_f,      /* le classificateur du visage */

              storage,        /* mémoire tampon, créé avec cvMemStorage */

              1.10,6, 0,      /* tune paramètres spéciaux, pour votre app */

              cvSize(40,50) ); /* échelle minimum de détection  */

/* obtenir le visage détecté pour la première */
CvRect* f;
for(int i = 0; i < (faces ? faces->total : 0 ); i++ )
{
  f = ( CvRect* )cvGetSeqElem( faces, i );
  /* dessinez un rectangle rouge */

    cvRectangle(

        img,

        cvPoint(f->x, f->y),

        cvPoint(

            f->x + f->width,

            f->y + f->height),

       colors[i%8] );

    /* tampon reset pour la détection objet suivant */

    cvClearMemStorage(storage);

/* Définissez la région d'intérêt: estimation de la position des yeux */

    cvSetImageROI( img,                    /* the source image */ 

        cvRect(f->x,            /* x = à partir de gauche */

            f->y + (f->height/5), /* y = quelques pixels de haut de page  */ 

            f->width,        /* width = même largeur avec le visage */

            f->height) );      /* height = hauteur du visage */

/*détecter les yeux  */
    int cornerCount=max_corners;
CvPoint2D32f corners[max_corners];
IplImage  *grayImage = 0, *corners1 = 0, *corners2 = 0;
int j; 
CvScalar color = CV_RGB(255,0,0);
grayImage = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);
//copy the source image to copy image after converting the format
cvCvtColor(img, grayImage, CV_BGR2GRAY);
//create empty images of same size as the copied images
corners1= cvCreateImage(cvGetSize(img), IPL_DEPTH_32F, 1);
corners2= cvCreateImage(cvGetSize(img),IPL_DEPTH_32F, 1);
cvGoodFeaturesToTrack (grayImage, corners1,
corners2, corners,
&cornerCount, 0.05,
5,
0,
3, // block size
0.01, // not use harris
4 );

printf("num corners found: %d\n", cornerCount);
// draw circles at each corner location in the gray image and
//print out a list the corners
if(cornerCount>0)
{
for (j=0; j<cornerCount; j++)
{
CvPoint centre = cvPointFrom32f(corners[j]);
        //Sous openCv on déssine un point en traçant un cercle de diamètre 0
        cvCircle(img, centre, 4, color);
		
}
}
cvNamedWindow("Image:", CV_WINDOW_AUTOSIZE);
cvShowImage( "image:", img);


cvReleaseImage(&img);
cvReleaseImage(&grayImage);
cvReleaseImage(&corners1);
cvReleaseImage(&corners2);
cvDestroyWindow("Image:");

 cvWaitKey(0);
  /* réinitialiser région d'intérêt */

 cvResetImageROI(img);
 return 0;
}
cvNamedWindow("Image1", CV_WINDOW_AUTOSIZE);
cvShowImage( "image1", img);
cvDestroyWindow("image1");
 cvReleaseImage(&img);
 /*fin de detectEyes () */
}



si quelqu'un pourra m'aider ça sera trés sympa de sa part

merci d'avance...


Cette discussion est classée dans : image, include, img, visage, corners


Répondre à ce message

Sujets en rapport avec ce message

[MFC] Copie de CDC [ par Atmaweapon ] Bon, voila, j'utilise 2 images dans ma MFC (SDI) que j'affiche en 'fond' de mon document...Pourquoi 2 images ? Parce que j'ai mon image source (celle Erreur avec Magick Image [ par milie_k33 ] Bonjour à tous,Je suis nouvelle sur ce site. Je suis actuellemment en projet pour manipuler des image TIFF en C sous Win 32. J'ai trouvé un site pas m Introduire une image BMP dans un prog C [ par 751 ] 751 je voudrais afficher en fond d'écrande mon programme coè en C une image Bmp et j'ai beau chercher je ne trouve pas comment faire je voudrais savo Codage image .img [ par gouzi_666 ] Bonjour, je travaille sur un projet de traitement d'image. Les images ou plutôt les fichiers images sur lesquels je travaille sont des fichiers d'imag problème d'allocation de classe [ par dark_naruto25 ] Salut les amis Voilà un autre problème bizzard. J'ai une classe appelé Bitmap, qui comme son nom l'indique gère une image bmp. Bref, à côté de cette c Problèmes avec CxImage [ par magicx92 ] Bonjour tout le monde, c'est mon premier post ici, j'espére ne pas trop faire le boulet.J'explique mon problème:Je souhaite réaliser un programme en l Set transform C++ [ par ffenforce10 ] Bonjour, Voilà, j'ai un petit problème avec la fonction transform pour appliquer un foncteur... Mon code complilait lorsque j'utilisait un vecteur, m code? [ par cpierrenet ] bj les amis mon blem n'est tjs pas résolu, je le repose autrement et si je ne suis pas clair dit Problème pour compiler du c [ par flox39 ] Salut à tous Je suis en galère avec du code qu'on m'a passé je n'arrive pas a le compilerl'erreur c error C2447: missing function header (old-style fo Déplacer une image avec la souris [ par ingelishome ] Bonjour,Je suis en train de faire une petite appli sous Borland C++ Builder dans lequel j'ai besoin de déplacer une image. Pour ce faire j'ai eu au dé


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,324 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales