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 !

CLASSE POUR CAPTURE IMAGE (VIDEO) AVEC WEBCAM USB (UTILISANT VFW.H)


Information sur la source

Catégorie :Multimédia Niveau : Initié Date de création : 31/03/2004 Date de mise à jour : 31/03/2004 16:30:04 Vu / téléchargé: 26 004 / 3 205

Note :
8,4 / 10 - par 10 personnes
8,40 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Description

Code pour connecter une webcam USB et pour capturer une image BMP (possibilité d'extension pour capturer une video ou du son, voir avec vfw).
Fonctionne avec n'importe quelle webcam après installation du driver de la webcam.
Classe plutot concu pour une application MFC.
 

Source

  • Voici une partie du code d'une classe Dlg d'une MFC avec cette classe :
  • //video : instance de la classe video_cap
  • //variable globale : handle_window de type HWND : "HWND handle_window ;"
  • void CTest_mfc_capvidDlg::OnEssai()
  • {
  • handle_window = video.Connexion(CTest_mfc_capvidDlg::m_hWnd) ;
  • }
  • void CTest_mfc_capvidDlg::OnPreview()
  • {
  • video.Preview(handle_window) ;
  • }
  • void CTest_mfc_capvidDlg::OnSource()
  • {
  • video.Option_Source(handle_window) ;
  • }
  • void CTest_mfc_capvidDlg::OnFormat()
  • {
  • video.Option_Format(handle_window) ;
  • }
  • void CTest_mfc_capvidDlg::OnAffichage()
  • {
  • video.Option_Affichage(handle_window) ;
  • }
  • void CTest_mfc_capvidDlg::OnCapture()
  • {
  • CString nom ;
  • GetDlgItemText(IDC_NOM, nom) ; // recupere le nom depuis un edit box dans la MFC
  • video.nom_fichier = nom.GetBuffer(nom.GetLength()) ;
  • video.CaptureImage(handle_window) ;
  • }
Voici une partie du code d'une classe Dlg d'une MFC avec cette classe :

//video : instance de la classe video_cap
//variable globale : handle_window de type HWND : "HWND handle_window ;" 

void CTest_mfc_capvidDlg::OnEssai() 
{
	handle_window = video.Connexion(CTest_mfc_capvidDlg::m_hWnd) ;
}

void CTest_mfc_capvidDlg::OnPreview() 
{
	video.Preview(handle_window) ;
}

void CTest_mfc_capvidDlg::OnSource() 
{
	video.Option_Source(handle_window) ;
}

void CTest_mfc_capvidDlg::OnFormat() 
{
	video.Option_Format(handle_window) ;
}

void CTest_mfc_capvidDlg::OnAffichage() 
{
	video.Option_Affichage(handle_window) ;	
}

void CTest_mfc_capvidDlg::OnCapture() 
{
	CString nom ;
	GetDlgItemText(IDC_NOM, nom) ; // recupere le nom depuis un edit box dans la MFC
	video.nom_fichier = nom.GetBuffer(nom.GetLength()) ;
	video.CaptureImage(handle_window) ;
}

Conclusion

Classe créée avec Visual C++ 6 by NoNo © (Moi quoi) :)
Pour tout problème ben laissez un message et je vous repondrai ;)
 

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 !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de nonothedj le 31/03/2004 15:18:54

Oups j'ai oublié d'enlever un truc :
#include "test_mfc_capvid.h" ca sert à rien c'est juste là car j'ai fait ma classe dans un projet c'est tout !
Sorry :)

signaler à un administrateur
Commentaire de nonothedj le 31/03/2004 15:24:00

J'ai remis à jour le zip il n'y a plus le prob d'include, donc normalement il ne doit pas y avoir de soucis :)

signaler à un administrateur
Commentaire de LordBob le 31/03/2004 19:43:09

dommage quel soit plus concu pour une app MFC !!!

signaler à un administrateur
Commentaire de nonothedj le 02/04/2004 08:27:39

oui c'est vrai j'ai fait ca orienté MFC car dans mon projet je m'en sers dans une MFC mais bon avec ca et l'exemple vidcap de microsoft on peut facilement la retranscrire en win32.

signaler à un administrateur
Commentaire de syl555 le 08/04/2004 10:50:33

lorsque j'ai compiler ton prog  (sous visual c++ 6), j'ai eu le droit a :

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main

ca veux dire quoi ? merci

signaler à un administrateur
Commentaire de nonothedj le 08/04/2004 13:39:18

T'as fait quoi comme application ? Le code que j'ai donné c'est juste une classe a intégré dans un projet MFC

signaler à un administrateur
Commentaire de jade198 le 30/04/2004 11:13:48

j'ai intégré ta classe dans un projet MFC et voila ce que j'obtiens a la compilation: MainFrm.cpp(50) : error C2065: 'IDR_MAINFRAME' : undeclared identifier.
Sais tu pourquoi et que dois je faire pour y remedier?

Merci

signaler à un administrateur
Commentaire de nonothedj le 30/04/2004 13:12:24

Ben la je vois pas du tout, si ta bien fait un MFC AppWizard (exe) il y a pas de soucis... donc désolé :/

signaler à un administrateur
Commentaire de jade198 le 05/05/2004 13:45:07

quand j'essaye de me connecter à la webcam que dois-je mettre comme paramètre? (cf HWND handle_mfc dans ton code) comment je l'obtiens?

signaler à un administrateur
Commentaire de nonothedj le 07/05/2004 13:34:12

Ah déjà, j'ai seulement testé mon appli pour une MFC dialog based, donc pour le single ou multiple documents je sais pas du tout si ca marche.
Sinon pour ton problème c'est ecrit dans la fonction CONNEXION de la classe:

le handle utilise est le handle de la classe Dlg de la MFC : pour l'avoir : C...Dlg::m_hWnd

signaler à un administrateur
Commentaire de siminfrance le 18/05/2004 17:14:45

Excuse mons Francais.

Merci pour un code exelent et plus facile que tous les example de M$.

Thanks again.
Cheers.
Simon

signaler à un administrateur
Commentaire de Brocolpif le 18/05/2004 21:57:17

dsl mais je debute en mfc ...
mais C...Dlg::m_hWnd ????

l'utilisation de la cam je le met
      dans un thread ?
      a la fin de l'init du dialogue ?

de plus g fait un debug sur le m_hWnd et il est tjrs a 0x0000000

... erf que de questions
            

signaler à un administrateur
Commentaire de nonothedj le 03/06/2004 20:31:43

C...Dlg::m_hWnd c'est l'identifiant de la boite de dialogue.

Tu la mets où tu en as besoin, ca peut etre dans un thread, ca peut etre avec des fonctions liées à des boutons dans la classe Dlg... Cela depend de ce que tu veux en faire.

signaler à un administrateur
Commentaire de psy4meuh le 08/06/2004 17:00:38

nikel!

signaler à un administrateur
Commentaire de camal35 le 15/06/2004 01:27:38

Ma question est comment integrer ta classe dans un projet MFC:
j'ai essayé ceci : dans un projet simple MFC Dialog Based
MFC ClassWizard ->Add Class ->New->
Name :video_cap
File Name : video_cap.cpp=>copier coller de ton code à la fin
Base Classe  : CDialog=>j'avais inséré un autre dialog que j'ai appelé Webcam IDD_WEBCAM2 en plus du premier Dialog IDD_WEBCAM1 crée en premier.
En compilant le tout j'ai eu beaucoup d'erreurs
Merci de m'indiquer la méthode à suivre en appliquant MFC ClassWizard .

signaler à un administrateur
Commentaire de neohp le 18/06/2004 19:20:58

salut camal35...

tu es mal parti, la.....

pour ajouter une classe dans un projet MFC suffit de faire :

projet->add to projet->files, et de selectionner le fichier .h et le .cpp de ta classe, pis c ok ....

voila, c pas plus compliqué que sa !

bonne prog
++

signaler à un administrateur
Commentaire de kaijo le 06/09/2004 18:17:06

Merci pour cette petite classe très utile !!

signaler à un administrateur
Commentaire de youssefd le 28/09/2004 18:37:53

lorsque j'ai compiler ton prog  (sous visual c++ 6), j'ai eu le droit a :

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main

ca veux dire quoi ? merci

signaler à un administrateur
Commentaire de camal35 le 28/09/2004 22:27:45

Merci nono ça marche j'ai réussi à compiler ta classe avec un projet simple dialog based .Y a plus d'erreurs je verrai comment integrer   C...Dlg::m_hWnd dans un bouton à cliquer .
Merci encore

signaler à un administrateur
Commentaire de martinbrochet le 19/04/2005 13:12:30

Merci pour ce super code il m'a sauvé la vie  c con qu'il n'y ai pas une applie de démo

signaler à un administrateur
Commentaire de chasse18 le 19/04/2005 15:25:52

a quand une apli pour démo de ta classe, sinon elle a l'air génial
mais serait il possible d'avoir une démmo please.

signaler à un administrateur
Commentaire de phenixar2 le 29/04/2005 10:21:22

Bonjour,
partout je trouve ce genre d exemple mais jamais ce que je recherche.
Je voudrais recuperer le buffer de l image et non l enregistrer dans une image.
Est ce possible de recuperer le contenu de l image sans passer par le fichier bmp ?

je suis passé parles HDC et  HBITMAP mais soit c est noir soit ca marche pas :(

merci pour votre aide.

signaler à un administrateur
Commentaire de nonothedj le 21/06/2005 09:48:52

Bonjour all, j'essayerai de vous mettre une appli de demo si je la retrouve dans mon pc car j'y ai pas beaucoup touché depuis l'année dernière mais je vais revoir ca :)

signaler à un administrateur
Commentaire de zed_33 le 02/08/2005 11:06:54

Bonjour Nono,

merci pour ta classe, j'ai du coup utilisé d'autres fonctions du vfw.h et j'ai des problèmes avec capGetStatus, le pointeur vers CAPSTATUS reste vide, aucune affectation n'est faite, l'as-tu déjà utilisée ?

merci

signaler à un administrateur
Commentaire de zed_33 le 02/08/2005 11:09:47

Bonjour Nono,

merci pour ta classe, j'ai du coup utilisé d'autres fonctions du vfw.h et j'ai des problèmes avec capGetStatus, le pointeur vers CAPSTATUS reste vide, aucune affectation n'est faite, l'as-tu déjà utilisée ?

CAPSTATUS *stat;
capGetStatus (window, stat, sizeof(CAPSTATUS));

merci

signaler à un administrateur
Commentaire de agambier le 10/12/2007 11:23:55

Salut zed_33,

Utilise plutot le code suivant (tu utilise un pointeur non initialisé).

CAPSTATUS stat;
capGetStatus (window, &stat, sizeof(CAPSTATUS));

A+
AG

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


HTC Magic

Entre 429€ et 429€


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,281 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é.