EXPLOITER SA WEBCAM

pascalrigaud Messages postés 2 Date d'inscription dimanche 18 juillet 2004 Statut Membre Dernière intervention 22 juillet 2004 - 22 juil. 2004 à 11:41
hyliass Messages postés 3 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 3 juillet 2012 - 3 juil. 2012 à 00:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/24541-exploiter-sa-webcam

hyliass Messages postés 3 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 3 juillet 2012
3 juil. 2012 à 00:52
Bonjour,

En compilant le programme j'ai l'erreur suivante:

capCreateCaptureWindow' undeclared (first use this function)

En regardant les commentaires sur google, il est dit de telecharger à cette adresse
(http://www.devever.net/pegercer/akx/vcap/) les fichiers vfwmod.h et libavicap32.a.

Le problème c'est que la page n'existe plus. Quelqu'un pourrait svp m'envoyer par mail ces 2 fichiers afin que je puisse utiliser ce programme et afficher ma webcam svp?

Merci
tolt595 Messages postés 2 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 7 mars 2010
7 mars 2010 à 15:13
Bonjour,

J'ai téléchargé les fichiers pour pouvoir traiter en temps réel des images issues de ma webcam.

Les exécutables fonctionnent bien.

Mais je n'arrive pas à compiler avec DJGPP.
Il y a une quantité invraisemblable de messages d'erreurs. Visiblement lors de la compilation il y a un problème dans la lecture des fichiers .h
Lorsque je fais attention à mettre tout le chemin qui mène au fichiers .h correspondant c'est encore pire.
Je ne sais pas trop quoi faire.

De plus étant débutant en C++ je ne sais pas à quoi servent tous les fichiers.
Merci d'avance pour votre aide.

Tolt595
tolt595 Messages postés 2 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 7 mars 2010
2 mars 2010 à 09:09
Bonjour,

J'aimerai faire du traitement d'images en temps réel. J'ai téléchargé le code mais je n'arrive pas à le compiler. J'utilise le compilateur DJGPP.

Si quelqu'un pouvait m'aider.
Merci d'avance,

Tolt 59
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
13 juin 2009 à 02:23
10/10 mais je ne saisi pas bien le Motion Capture HC_Bmp 0 1 et 2 !?
Merci d'avance
naosalem Messages postés 4 Date d'inscription mercredi 16 mai 2007 Statut Membre Dernière intervention 13 mai 2009
13 mai 2009 à 16:36
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???
cs_Jctickle Messages postés 7 Date d'inscription dimanche 26 novembre 2006 Statut Membre Dernière intervention 28 juillet 2008
27 juil. 2008 à 01:39
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.
cs_nadia63 Messages postés 1 Date d'inscription vendredi 21 juillet 2006 Statut Membre Dernière intervention 9 décembre 2007
9 déc. 2007 à 19:51
bravo et merci pour cet extraordinaire fluidité !!!
clemcg Messages postés 1 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 22 novembre 2007
22 nov. 2007 à 12:23
quand je lance le logiciel l'image est noir, il ne dois pas trouver la web cam, mais aucun message d'erreur
pweiss Messages postés 1 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 28 février 2007
28 févr. 2007 à 20:05
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...
boaj35 Messages postés 1 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 11 décembre 2006
11 déc. 2006 à 09:50
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
mauddie Messages postés 1 Date d'inscription jeudi 12 octobre 2006 Statut Membre Dernière intervention 30 octobre 2006
30 oct. 2006 à 17:17
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.
aminerobot Messages postés 1 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 10 mars 2006
10 mars 2006 à 19:37
ou je peut trouver ça ...????
pour pouvoir compilé avec dev c

-lvfw32
-lmsvfw32
-lavicap32
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
5 mars 2006 à 13:22
OK, j'avais deja regarder dans MSDN, mais jene voyais pas à quoi correspondait cet index.
Now c'est plus clair, merci.
lickthetoad Messages postés 8 Date d'inscription dimanche 23 octobre 2005 Statut Membre Dernière intervention 5 mars 2006
5 mars 2006 à 06:57
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+
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
5 mars 2006 à 00:08
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?
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
6 janv. 2006 à 09:26
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+
lickthetoad Messages postés 8 Date d'inscription dimanche 23 octobre 2005 Statut Membre Dernière intervention 5 mars 2006
7 nov. 2005 à 10:02
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+
laurentsmits Messages postés 2 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 9 novembre 2005
4 nov. 2005 à 03:10
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
cs_tyfeur Messages postés 13 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 16 février 2006
4 nov. 2005 à 01:25
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
lickthetoad Messages postés 8 Date d'inscription dimanche 23 octobre 2005 Statut Membre Dernière intervention 5 mars 2006
2 nov. 2005 à 09:46
j'ai oublie les //
avant TblImage[ID_Bmp].points[i][j].Couleur = R | G <<8 | B<<16;
lickthetoad Messages postés 8 Date d'inscription dimanche 23 octobre 2005 Statut Membre Dernière intervention 5 mars 2006
2 nov. 2005 à 09:45
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
lickthetoad Messages postés 8 Date d'inscription dimanche 23 octobre 2005 Statut Membre Dernière intervention 5 mars 2006
2 nov. 2005 à 07:12
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
sjasmin Messages postés 6 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 26 octobre 2005
30 oct. 2005 à 21:08
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
Stepharcher Messages postés 117 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 8 septembre 2008
27 oct. 2005 à 18:05
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.
lickthetoad Messages postés 8 Date d'inscription dimanche 23 octobre 2005 Statut Membre Dernière intervention 5 mars 2006
26 oct. 2005 à 09:14
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+
lickthetoad Messages postés 8 Date d'inscription dimanche 23 octobre 2005 Statut Membre Dernière intervention 5 mars 2006
26 oct. 2005 à 09:07
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+
lickthetoad Messages postés 8 Date d'inscription dimanche 23 octobre 2005 Statut Membre Dernière intervention 5 mars 2006
23 oct. 2005 à 19:18
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+
Captain_Hook Messages postés 1 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 23 octobre 2005
23 oct. 2005 à 17:49
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 :))
jpreffu Messages postés 9 Date d'inscription samedi 17 septembre 2005 Statut Membre Dernière intervention 22 octobre 2005
22 oct. 2005 à 20:01
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.
KissyFroth Messages postés 38 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 7 avril 2007
16 oct. 2005 à 23:09
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.
KissyFroth Messages postés 38 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 7 avril 2007
16 oct. 2005 à 22:58
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)
phipedro Messages postés 9 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 16 juillet 2005
16 juil. 2005 à 05:38
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.
jajacom Messages postés 7 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 17 novembre 2004
17 nov. 2004 à 17:27
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.
Stepharcher Messages postés 117 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 8 septembre 2008
24 juil. 2004 à 00:57
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.
pascalrigaud Messages postés 2 Date d'inscription dimanche 18 juillet 2004 Statut Membre Dernière intervention 22 juillet 2004
22 juil. 2004 à 11:41
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 :-)
Rejoignez-nous