Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

EXPLOITER SA WEBCAM


Information sur la source

Catégorie :Graphique Classé sous : webcam, exploitation, effet, tracker, mouvement Niveau : Initié Date de création : 14/07/2004 Vu / téléchargé: 38 947 / 5 136

Note :
9,79 / 10 - par 14 personnes
9,79 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (32)
Ajouter un commentaire et/ou une note

Description

Voici un programme qui permet de rechercher l'image de la webcam et de faires des calculs dessus. C'est un complément de mon ancien programme sur la webcam, vous pouvez faire encore plus de combinaison. J'ai mis dans le zip quelques exécutable vous montrans le dectecteur de mouvement, la recherche de contour, le passage de 16bit à 16 couleurs, le passage de RGB à HSL et bien d'autre !
 

Conclusion

vous pouvez voir mon ancien programme de ce type sur http://www.cppfrance.com/code.aspx?id=23785
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   Code
  •   Programme que l'on peut faire
    • 16Bits_a_16couleurs.exeTélécharger ce fichier [Réservé aux membres club]217 177 octets
    • Contour.exeTélécharger ce fichier [Réservé aux membres club]217 177 octets
    • Mirroir.exeTélécharger ce fichier [Réservé aux membres club]217 177 octets
    • Seuil Noir Blanc.exeTélécharger ce fichier [Réservé aux membres club]217 177 octets
    • Teinte.exeTélécharger ce fichier [Réservé aux membres club]217 177 octets

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de pascalrigaud le 22/07/2004 11:41:02

Ton prog est vraiment sympa.

aurait tu une idée sur la manière d'afficher deux, ou plus, flux d'images provenant de webcam différentes?

Pacal :-)

signaler à un administrateur
Commentaire de Stepharcher le 24/07/2004 00:57:06

Tu veux brancher plusieur webcam en même temps... Je ne connais pas le moyen, mon code part du principe que tu n'as qu'une webcam.

signaler à un administrateur
Commentaire de jajacom le 17/11/2004 17:27:51

Ton code est tout simplement génial.
C'est bien organisé, commenté, les parties sont claires, et l'exécution est rapide, très peu de latence...
Le tout fonctionnel, pas de bug détecté jusqu'à présent.
En plus il correspond exactement à ce que je recherchais, j'aurais plus qu'à écrire mes propres fonctions de traitement, et tout sera nickel.
C'est vraiment du travail de qualité, et ce serait bien si tout le monde était aussi organisé dans son travail.
Merci pour ce code auquel je mets 10/10.

signaler à un administrateur
Commentaire de phipedro le 16/07/2005 05:38:27

bravo
ton code est excellent. Je suis en stage et ton code m'a sauvé le stage ! Merci tout est clair. Tu fais vraiment du bon boulot. Ne t'iquiète pas tu es cité dans le .doc. Merci encore je te mets 10.

signaler à un administrateur
Commentaire de KissyFroth le 16/10/2005 22:58:12

Ben moi j'ai un probleme : la fenetre s'ouvre et se ferme tout de suite. Il n'a donc rien le temps d'afficher et ma camera ne s'allume meme pas. Si quelqu'un peut m'indiquer d'ou vient le problème ?
(a part ca 0 errors 0 warnings)

signaler à un administrateur
Commentaire de KissyFroth le 16/10/2005 23:09:40

Je n'ai rien dit : en fait ma webcam était mal branchée. Cependant cela montre une lacune dans la gestion des messages d'erreurs. A part ca, tres bon prog. Merci !!! Je met 8/10.

signaler à un administrateur
Commentaire de jpreffu le 22/10/2005 20:01:02

Bonjour,

J'ai un petit problème en DEV CPP, il me manque le fichier vfw.h.
Je ne l'ai ni dans le ZIP ni dans ma biblio standard???
Merci de me guider.

signaler à un administrateur
Commentaire de Captain_Hook le 23/10/2005 17:49:46

Un grand bravo pour ton programme qui m'a été extrêmement utile pour mon projet de reconnaissance d'images. Il s'agit vraiment d'un bon framework pour l'exploitation de sa webcam. 10/10 parce que je ne peux pas mettre plus :))

signaler à un administrateur
Commentaire de lickthetoad le 23/10/2005 19:18:51

salut a tous
et bravo pour ton code.

pour ce qui ont dev c++ il faut utiliser le fichier include
vfwmod.h que vous pouvez trouver sur cette page http://www.devever.net/pegercer/akx/vcap/

et liker les libreries
(project option -> parametres- linker)
-lvfw32
-lmsvfw32
-lavicap32

apres ca ce compile parfectement

a+

signaler à un administrateur
Commentaire de lickthetoad le 26/10/2005 09:07:13

j'ai regardee plus en dettail ton code qui reste tres bien,
mais je trouve que pour ce qui est le calculle de couleur et RGB.
tes fonctions sont pas tres bien codee...
je mexplique avec un example:

// Coef de bleu //TblImage[ID_Bmp].points[i][j].B=(TblImage[ID_Bmp].points[i][j].Couleur)/(256*256);
TblImage[ID_Bmp].points[i][j].B=(TblImage[ID_Bmp].points[i][j].Couleur & 0x00ff0000)>> 16;

// Coef de vert //TblImage[ID_Bmp].points[i][j].G=(TblImage[ID_Bmp].points[i][j].Couleur-TblImage[ID_Bmp].points[i][j].B*256*256)/256;
TblImage[ID_Bmp].points[i][j].G=(TblImage[ID_Bmp].points[i][j].Couleur & 0x0000ff00)>>8;

// Coef de rouge //TblImage[ID_Bmp].points[i][j].R=TblImage[ID_Bmp].points[i][j].Couleur-TblImage[ID_Bmp].points[i][j].B*256*256-TblImage[ID_Bmp].points[i][j].G*256;
        TblImage[ID_Bmp].points[i][j].R=TblImage[ID_Bmp].points[i][j].Couleur & 0x000000ff;

voila ...
en plus c'est plus rapide et plus clair ...
PS(attention j'utilise sur 32bit au cas ou il y de l'alpha a implemanter)

a+

signaler à un administrateur
Commentaire de lickthetoad le 26/10/2005 09:14:18

a oui il y a ça aussi :

// Calcul la couleur
//TblImage[ID_Bmp].points[i][j].Couleur = R + 256*G + 256*256*B;
// faster
TblImage[ID_Bmp].points[i][j].Couleur = R | G <<8 | B<<16;
//0r
//TblImage[ID_Bmp].points[i][j].Couleur = (R & 0x000000ff) | (G & 0x000000ff) <<8 | (B & 0x000000ff) <<16;

et desolee pour mon français mais Français ne suis je pas.

a+

signaler à un administrateur
Commentaire de Stepharcher le 27/10/2005 18:05:55

oui tu as raison, les fonctions sont pas vraiment optimisees. J ai plus essaye de faire dans le nombre de fonction plutot que dans la performance.

signaler à un administrateur
Commentaire de sjasmin le 30/10/2005 21:08:38

Je regardais dans ta fonction chargeCapture()
TblImage[ID_Bmp].points[i][j].R = R = lpBits[4*320*(239-i)+4*j+2];
TblImage[ID_Bmp].points[i][j].G = G = lpBits[4*320*(239-i)+4*j+1];
TblImage[ID_Bmp].points[i][j].B = B = lpBits[4*320*(239-i)+4*j];

donc on regarde les valeurs dans le tableau lpBits
0 1 2
4 5 6
8 9 10 ... etc
donc ma question que signifie la valeur lpBits[3] , lpBits[7] ...
ce qui m'expliquerait pourquoi nous l'ignorons dans les calculs
merci

signaler à un administrateur
Commentaire de lickthetoad le 02/11/2005 07:12:18

juste une petite precison de corectioon du code
j'ai remplacee tous le 320 et les 240 (aussi les 319=320-1 et 239=240-1)
avec
#define WEBCAM_WIDTH    320
#define WEBCAM_HEIGHT   240

dans le code ca donne quelque chose comme cela:

// Parcoure les pixels et les stocke dans un tbl
for(i=0; i<WEBCAM_HEIGHT; i++)
for(j=0; j<WEBCAM_WIDTH; j++)
{
// Récupère chaque coef du RGB
TblImage[ID_Bmp].points[i][j].R = R = lpBits[4*WEBCAM_WIDTH*(WEBCAM_HEIGHT-1-i)+4*j+2];
TblImage[ID_Bmp].points[i][j].G = G = lpBits[4*WEBCAM_WIDTH*(WEBCAM_HEIGHT-1-i)+4*j+1];
TblImage[ID_Bmp].points[i][j].B = B = lpBits[4*WEBCAM_WIDTH*(WEBCAM_HEIGHT-1-i)+4*j];

// Calcul la couleur
//TblImage[ID_Bmp].points[i][j].Couleur = R + 256*G + 256*256*B;
// faster ??
            TblImage[ID_Bmp].points[i][j].Couleur = R | G <<8 | B<<16;
            //0r
//TblImage[ID_Bmp].points[i][j].Couleur = (R & 0x000000ff) | (G & 0x000000ff) <<8 | (B & 0x000000ff) <<16;
}


a+


pour la reponse plus haut je crois que c'est l'alpha de la couleure que on prend pas en compte...
32 bit code sur BGRA
mais je dis peuetre une c.....


thetoad

signaler à un administrateur
Commentaire de lickthetoad le 02/11/2005 09:45:14

personellement j'ai optimisee comme cela:

int offset_i,offset_j;
int *color_ptr;

// Parcoure les pixels et les stocke dans un tbl
for(i=0; i<WEBCAM_HEIGHT; i++)
  {
   offset_i=WEBCAM_WIDTH*(WEBCAM_HEIGHT-1-i);
for(j=0; j<WEBCAM_WIDTH; j++)
{
offset_j=4*(offset_i+j);
color_ptr= (int *)(lpBits+offset_j);

// Récupère chaque coef du RGB
//TblImage[ID_Bmp].points[i][j].A = A = (*color_ptr & 0xFF000000) >> 24;
                TblImage[ID_Bmp].points[i][j].R = R = (*color_ptr & 0x00FF0000) >> 16;
TblImage[ID_Bmp].points[i][j].G = G = (*color_ptr & 0x0000FF00) >> 8;
TblImage[ID_Bmp].points[i][j].B = B = (*color_ptr & 0x000000FF);



// Calcul la couleur
                           TblImage[ID_Bmp].points[i][j].Couleur = R | G <<8 | B<<16;
                        //0r
//TblImage[ID_Bmp].points[i][j].Couleur = (R & 0x000000ff) | (G & 0x000000ff) <<8 | (B & 0x000000ff) <<16;
                        TblImage[ID_Bmp].points[i][j].Couleur = *color_ptr;
}
}



voila c'est (encore)un peut plus rapide

signaler à un administrateur
Commentaire de lickthetoad le 02/11/2005 09:46:37

j'ai oublie les //
avant TblImage[ID_Bmp].points[i][j].Couleur = R | G <<8 | B<<16;

signaler à un administrateur
Commentaire de tyfeur le 04/11/2005 01:25:10

Avec d'autres etudiants, on a realisé un logiciel de Motion Capture sous Windows et Linux.
On a laissé nos rapports de projets qui contiennent pas mal d'infos sur les bibliotheques existant sur ces archi.
Je vous file l'adresse, a l'epoque ca m'aurait bien aidé ! ;)
http://3dmoka.free.fr

signaler à un administrateur
Commentaire de laurentsmits le 04/11/2005 03:10:15

bonjour,

je dois faire un programme qui recupere le signal d'une webcam et l'affiche pour un club de robotique

dans la fonction qui connecte la camera

hWnd_WC = capCreateCaptureWindow("handle", WS_CHILD | WS_VISIBLE,
20, 35, 320, 240, hWnd, 1) ;

je voudrais te demander ou est decris capCreateCaptureWindow
es ce que c une fonction qui es declarer dans le code
ou avec un include ?
comment es ce que peux la recuperer dans mon programme?


merci

signaler à un administrateur
Commentaire de lickthetoad le 07/11/2005 10:02:55

Salut
le prototipe est dans :
#include <vfw.h> et il faut linker le lib.(si tu utilise mingw32 ou devc++ regarde dans unmessage plus haut pour savoir coment le compiler)

tu trouve les specifications ici :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capcreatecapturewindow.asp

a+

signaler à un administrateur
Commentaire de max12 le 06/01/2006 09:26:21 administrateur CS

Il manque la détection des drivers : if(!capDriverConnect(hWnd_WC,0)) remplacer le 0 par le chiffre qui représente le driver. Si quelqu'un veux le code pour faire l'inventaire des drivers présent sur la machine il n'a qu'a m'envoyer un MP. (Je le poste pas ici parce que le code est sur mon DD Externe et que j'ai vraiment pas envie de le plugger à 3:22 du math).

A+

signaler à un administrateur
Commentaire de julienbj le 05/03/2006 00:08:35

Avec un peu de retard, et malgré que la curiosite n'attende pas ;)
J'ai une petite question.
Dans la macro capDriverConnect, à quoi correspond le second parametre?

signaler à un administrateur
Commentaire de lickthetoad le 05/03/2006 06:57:27

pour capDriverConnect reagde ici
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverconnect.asp

BOOL capDriverConnect(
  hwnd,  
  iIndex
);

Parameters

hwnd

Handle to a capture window.

iIndex

Index of the capture driver. The index can range from 0 through 9.

Return Values

Returns TRUE if successful or FALSE if the specified capture driver cannot be connected to the capture window.

c'est ce que max12 disait plus haut ca corespon a l'index du driver de la webcam si tu as 2 ou + tu peut choisir la quelle detecter

a+

signaler à un administrateur
Commentaire de julienbj le 05/03/2006 13:22:06

OK, j'avais deja regarder dans MSDN, mais jene voyais pas à quoi correspondait cet index.
Now c'est plus clair, merci.

signaler à un administrateur
Commentaire de aminerobot le 10/03/2006 19:37:00

ou je peut trouver ça ...????
pour pouvoir compilé avec dev c

-lvfw32
-lmsvfw32
-lavicap32

signaler à un administrateur
Commentaire de mauddie le 30/10/2006 17:17:46

Bonjour,

J'utilise ton programme pour détecter la position des yeux d'une personne dont le visage est centré sur l'image. Pour cela j'ai utilisé un filtre de Sobel afin de détecter les contours.
Cela fonctionne bien mais j'ai un petit problème. J'ai ajouté une fonction de calcul de contour par la méthode de Sobel avec les autres fonctions déjà implémentées (calcul.cpp) et lorsque j'initialise un tableau de dimension 2 en double, j'ai une erreur lors de la compilation : dépassement de pile (stack overflaw). Je n'arrive pas à comprendre d'où vient le problème. Quelqu'un pourrait il me donner un élément de réponse ?
Merci bcp.  

signaler à un administrateur
Commentaire de boaj35 le 11/12/2006 09:50:13

Bonjour à tous, je risque de vous paraitre etre null mais c'est le risque à courir. Je ne comprends pas trop ce prog; pourrais je avoir un peu d'aide. Je voudrais utiliser une webcam pour voir si une couleur precise est presente dans le champ de vision.  Pour cela je voudrais modifier un peu la fonction calRBG pour y arriver mais c'est loin d'etre simple pour moi car  

1 Je n'arrive pas à avoir la fenetre doss ce qui me serait d'une grande utilité, afin de voir l'etat des variables ou pour  toute info qui me serait utilile, je suis preneur

signaler à un administrateur
Commentaire de pweiss le 28/02/2007 20:05:12

Bonjour,

J'ai telecharge ce code qui me semble tres bien (c'est la premiere fois que j'utilise VC5, c'est le premier programme que je teste, et tout marche du premier coup...).

J'ai ensuite ajoute une fonction de filtrage non lineaire (Rudin-Osher-Fatemi pour ceux qui connaissent) qui est sensee fonctionner en temps reel.

La j'ai eu un probleme. Quand je compile en mode DEBUG, no prob, mais en mode RELEASE j'obtiens le message d'erreur suivant :

error LNK2019:unresolved external symbol _capCreateCaptureWindowA@32 .....

Il me semble que c'est une erreur classique, mais je n'ai pas trouve comment la resoudre...

Quelqu'un peut-il m'aider?
Merci d'avance...


signaler à un administrateur
Commentaire de clemcg le 22/11/2007 12:23:32

quand je lance le logiciel l'image est noir, il ne dois pas trouver la web cam, mais aucun message d'erreur

signaler à un administrateur
Commentaire de nadia63 le 09/12/2007 19:51:51 10/10

bravo et merci pour cet extraordinaire fluidité !!!

signaler à un administrateur
Commentaire de Jctickle le 27/07/2008 01:39:27

Tout d'abord, bonjour,

Je vous appel à l'aide car je souhaiterai faire un programme qui gère la webcam.

Le principe serait de faire une partie server et une partie client. Quand je démarrerai le server, sur les ordinateurs ou j'ai installé le "client" l'ordinateur ouvrerai la fenetre d'office, ou suivant la demmande du server et ce client dans la fenetre ouverte afficherai la webcam.

Ceci dis, ici, d'abord, j'essaye de compiler ce programme mais, j'en arrive à 4 error et 6 warning.


C:\Users\Jean-Claude\Desktop\CPP\Webcam\WebCam.h|146|warning: no newline at end of file|
C:\Users\Jean-Claude\Desktop\CPP\Webcam\WebCam.cpp||In member function `void CWebCam::Connect()':|
C:\Users\Jean-Claude\Desktop\CPP\Webcam\WebCam.cpp|39|error: `capDriverConnect' was not declared in this scope|
C:\Users\Jean-Claude\Desktop\CPP\Webcam\WebCam.cpp|39|warning: unused variable 'capDriverConnect'|
C:\Users\Jean-Claude\Desktop\CPP\Webcam\WebCam.cpp||In member function `void CWebCam::ChargeCapture(int)':|
C:\Users\Jean-Claude\Desktop\CPP\Webcam\WebCam.cpp|57|warning: unused variable 'hwnd'|
C:\Users\Jean-Claude\Desktop\CPP\Webcam\WebCam.cpp||In member function `void CWebCam::AfficheWebCam()':|
C:\Users\Jean-Claude\Desktop\CPP\Webcam\WebCam.cpp|185|error: `capPreviewScale' was not declared in this scope|
C:\Users\Jean-Claude\Desktop\CPP\Webcam\WebCam.cpp|188|error: `capPreviewRate' was not declared in this scope|
C:\Users\Jean-Claude\Desktop\CPP\Webcam\WebCam.cpp|191|error: `capPreview' was not declared in this scope|
C:\Users\Jean-Claude\Desktop\CPP\Webcam\WebCam.cpp|185|warning: unused variable 'capPreviewScale'|
C:\Users\Jean-Claude\Desktop\CPP\Webcam\WebCam.cpp|188|warning: unused variable 'capPreviewRate'|
C:\Users\Jean-Claude\Desktop\CPP\Webcam\WebCam.cpp|191|warning: unused variable 'capPreview'|
||=== Build finished: 4 errors, 6 warnings ===|


Je ne sais trop que faire, j'ai bon chercher, je ne trouve pas, je cherche juste à pouvoir compiler et comprendre ce code, mais c'est hard.

Etant sous code::blocks j'ai créé un projet vide, j'ai ajouté les fichiers et j'ai tanté de compilé, n'ayant pas, j'ai cherché les erreures mais, je ne les trouves pas, enfin leurs solutions.

Donc, voilà la raison de mon appel au secourt.

Bien à vous.

Jctickle.

signaler à un administrateur
Commentaire de naosalem le 13/05/2009 16:36:12

j'ai essayer de compiler ce programme sous devc++ mais ça marche pa. l'erreur est 36 C:\Dev-Cpp\WebCam.cpp `capCreateCaptureWindow' undeclared (first use this function)
que dois je faire je suis débutant en c++ et je besoin de votre programme. pouriez vous m'aider???

signaler à un administrateur
Commentaire de wxccxw le 13/06/2009 02:23:55 10/10

10/10 mais je ne saisi pas bien le Motion Capture HC_Bmp 0 1 et 2 !?
Merci d'avance

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Exploitation Webcam [ par tantor5454 ] Bonjour,Donc j'explique ma demande nous sommes en TPE et nous avons comme objectif de repérer une balle de tennis via une web cam.Helas nous ne maitri Un projet VC++ en DLL, exploitation [ par Sharleen ] Bonjour à tous !Un petit problème tout bête...J'ai un projet VC++, qui me pond un .exe...Je souhaite pouvoir exploiter ce que j'ai fait a partir d'un Connexion à une webcam réseau [ par 4u4me4us ] Bonjour,Mon problème est le suivant. J'ai une webcam réseau est je voudrais enregistre ses images sur le HDD.Je connais l'adresse IP et le port de com enregistrement vidéo d'une webcam [ par kain31 ] Bonjour tout le monde, Je travail actuellement sur un logiciel qui doit me permettre d'enregistrer se que film une webcam. Je vous explique lorsque l' probleme capture webcam [ par kain31 ] Bonjour tt le monde, Je voulais savoir s'il est possible d'enregistrer ce que film ma webcam lorsque j'appuie sur un bouton de mon aplication, sachant capture webcam en zone [ par kain31 ] bonjour tout le monde,Je voulais savoir comment on peut diviser ce que film ma webcam en plusieur zone.En fait qu'en il y aura du mouvement dans une z afficher une webcam [ par jojomillenium ] Hello!J'aimerai savoir comment je peux afficher une webcam en utilisant wxwidgets!J'aimerai créer une interface utilisateur, pouvoir selectionner la w Gestion du bouton d'une WebCam [ par Talos ] Bonjour,J'ai besoin de développer une application permettant de capturer des images à partir d'une WebCam.En ce qui concerne l'image, je n'ai aucun pr detecter une webcam wxwidget [ par jojomillenium ] Bonjour,J aimerai afficher une webcam, seulement j utilise wxwidgets, alors avnt d fficher la cam, il fut que je la selectionne dans les cam connecté affichage de plusieur webcam [ par kain31 ] bonjour tout le monde,Je suis en trin de develloper une application qui doit permettre l'affichage de plusieur webcam.J'utilise des webcam similaires.


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,920 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.