Bonjour,

J'ai récupéré un code, que j'ai par la suite francisé, qui permet de tracer des rectangles autour de visages dans des images.

Cependant j'ai quelques erreurs à la compilation : notamment "expected constructor, destructor, or type conversion before '*' token " à la ligne 2

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 
//declarations
CvHaarClassifierCascade* pCascade = 0;  // le detecteur de visage 
CvMemStorgage* pStorage = 0;            // buffer mémoire expensible
CvSeq* pFaceRectSeg;                    // liste des visages detectés
int i;
 
// initialisations
IplImage* pInpImg = (argc > 1) ?
cvLoadImage(argv[1], CV_LOAD_IMAGE_COLOR) : 0;
pStorage = cvCreateMemStorage(0);
pCascade = (CvHaarClassifierCascade *)cvLoad
((OPENCV_ROOT"/data/haarcascades/haarcascade_frontalface_default/xml"),0,0,0,0);
 
// On valide que tout a bien été initialisé correctement
if(!pInpImg || !pStorage || !pCascade)
{
 printf("L'initilisation a echoue : %s \n,
   (!pInpImp)?  "n'a pas charge l'image" : 
   (!pCascade)? "n'a pas charge le detecteur de Haar -- "
                "verifiez que le chemin est correct" :
   "Allocation memoire a echoue");
   exit(-1);
}
 
// Detection de visage dans l'image
pFaceRectSeq = cvHaarDetectObjects
  (pInpImg, pCascade, pStorage,
  1.1,                            // augmente l'échelle de recherche de 10% à chaque passe
  3,                              // met de côté les groupes plus petit que 3 détections
  CV_HAAR_DO_CANNY_PRUNING,       // abandonne les régions non candidates à contenir un visage
  cvSize(0,0));                   // utilise les paramètres XML par défaut pour la plus petite echelle de recherche
 
  // create a window to display detected faces
  cvNamedWindow("Fenetre de Haar", CV_WINDOW_AUTOSIZE);
 
  // dessine un rectangle autour de chaque visage detecté
  for(i=0;i<(pFaceRectSeq? pFaceRectSeq->total:0);i++)
  {
   CvRect* r = (Cvrect*)cvGetSeqElem(pFaceRectSeq, i);
   CvPoint pt1 = { r->x, r->y };
   CvPoint pt2 = { r->x, r->width, r->y + r->height };
   cvRectangle(pInpImg, pt1, pt2, CV_RGB(0,255,0), 3, 4, 0);
 }
 
// Affiche la détection de visage
cvShowImage("Fenetre de Haar", pInpImg);
cvWaitKey(0);
cvDestroyWindow("Fenetre de Haar");
 
// Libère les ressources
cvReleaseImage(&pInpImg);
if(pCascade) cvReleaseHaarClassifierCascade(&pCascade);
if(pStorage) cvReleaseMemStorage(&pStorage);
Je ne suis pas très bon développeur C++ donc j'ai quelques petits soucis ^^
Merci pour vos réponses