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

C++ & C++ .NET

 > 

Algorithme

 > 

Compression, Split & Cryptage

 > 

detection sur video avec opencv


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

detection sur video avec opencv

mercredi 27 avril 2011 à 14:46:38 | detection sur video avec opencv

altyok

bonjour,

je cherche quelqu'un qui pourrait m'aider à résoudre un problème sur opencv
j'ai fait un programme qui lit les frams de ma webcam
ensuite j'appel cvHaarDetectObjects pour détecter les visages
mon problème c'est que la fonction cvHaarDetectObjects est tres tres lente environ une image par seconde
je suis aller fouiller sur le net et apparemment pour les autres c'est tres fluide????

voila mon code si qq à une idée:

#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <math.h>
#include <float.h>
#include <limits.h>
#include <time.h>
#include <ctype.h>

//initialisation
static CvMemStorage* storage = 0;
static CvHaarClassifierCascade* cascade = 0;
void detect_and_draw( IplImage* image );
const char* cascade_name ="haarcascade_frontalface_default.xml";


void detect_and_draw(IplImage* img)
{
static CvScalar colors[] = { {{0,0,255}}, {{0,128,255}}, {{0,255,255,255}}, {{0,255,0}}, {{255,128,0}}, {{255,255,0}}, {{255,0,0}}, {{255,0,255}} }; //couleurs des differents contours si il y en a plusieur
int scale = 1;
//detection des visages
cvClearMemStorage( storage);
CvSeq* objects = cvHaarDetectObjects( img, cascade, storage,1.1, 3, 0, cvSize(10,10));
//dessin des triangles autour de chaque visage detectee
for(int i=0; i< (objects ? objects->total : 0); i++)
{
CvRect* r = (CvRect*)cvGetSeqElem( objects, i );
cvRectangle(img, cvPoint(r->x*scale, r->y*scale), cvPoint((r->x+r->width)*scale, (r->y+r->height)*scale), colors[i%8]);
cvShowImage( "result", img );
}
cvShowImage( "result", img ); //affichage
}

int main(int argc, char *argv[])
{
//initialisation des images
IplImage *img=0;
IplImage *frame, *frame_copy = 0;
cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0 );
//vérif des erreurs
if( !cascade )
{
fprintf( stderr, "ERROR: Could not load classifier cascade\n" );
return -1;
}
//creation du lien avec l'espace memoir et de l'affichage
storage = cvCreateMemStorage(0);
cvNamedWindow( "result", 1 );
//img= cvLoadImage("lena.jpg",1); //si on veut utiliser une image
//chargement de la video
CvCapture* capture=cvCaptureFromCAM(0); // si on veut utiliser une webcam
//CvCapture* capture = cvCreateFileCapture("bourvil.avi"); // si on veut utiliser une vidéo
//boucle d'appel de la fonction detect_and_draw pour chaque frame
for(;;)
{
img = cvQueryFrame(capture);
detect_and_draw( img );
if( cvWaitKey( 2 ) >= 0 )
break;
}
cvReleaseImage( &img );
return 0;
}

merci


Cette discussion est classée dans : include, img, scale, cascade, storage


Répondre à ce message

Sujets en rapport avec ce message

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 probleme openCV [ par altyok ] bonjour, voila j'utilise openCV 2.1 sur visualC++ et je n'arrive pas à utiliser la commande cvLoadImage voila mon programme: #include "stdafx.h" #i détéction des point d'interet d'un visage dans une image [ par 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 Traitement caractères [ par baptchr55 ] Bonjour à tous, je sollicite à nouveau votre aide suite à un problème de traitement de caractères... Je reçoit une trame (par le biais de sockets) et Compilation avec cppLAPACK [ par sdrh ] Bonjour à tous et merci d'avance pour votre aide. J'essaye actuellement de faire compiler code::blocks avec la librairie ccplapack que j'ai télécharg include <psapi.h> erreur de compilation [ par ayarikhaoula ] je veux savoir comment ajouter psapi.lib dans les entrées du linkeur:je developpe un prg en c dans laquelle j'ai l'include:#include mais c'est n'ai p Programme en c++ [ par noussa44 ] Bonjour à tous, Je suis débutant en c++ et j'ai un problème dans un exercice qui demande de lire à partir d'un fichier texte des réels et les stockés Tilt Shift [ par xenon006 ] Bonjour tout le monde, Je suis un étudiant en informatique, et j'ai un projet en traitement d'image dans le domaine de l'imagerie, précisement sur l Pb de récuperation d'une liste chainée passée en réf à une autre fonction [ par amosaid ] Bonjour, mon code (en c) contient des appels imbrquées des fonctions, chaque fonction doit retourner TRUE ou FALSE (pas d'échage de variables par "re erreur code [ par ucf662 ] [code=cpp]class point{ int x,y; public: void initialiser( int x1 , int y1 ) ; void deplacer( i


Nos sponsors


Sondage...

Comparez les prix

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 : 0,562 sec (4)

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