begin process at 2010 03 17 03:07:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Multimédia

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

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


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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é :27 418 / 3 266

Auteur : nonothedj

Ecrire un message privé
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

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source avec une capture [WIN32] EASY WAVE MIXER par ordiman85
METTRE À JOUR LE TITRE DU MORCEAU EN COURS DANS MSN LIVE par citronz1969
Source avec Zip SUPER MINI MP3 JOUEUR par f_l_a_s_h_b_a_c_k
Source avec Zip MP3 RENAMER par dragonjoker59
Source avec Zip Source avec une capture LECTEUR DE MUSIQUE AVEC SDL ET FMOD par Lemng

Commentaires et avis

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 :)

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 :)

Commentaire de LordBob le 31/03/2004 19:43:09

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

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.

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

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

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

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é :/

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?

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

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

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
            

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.

Commentaire de psy4meuh le 08/06/2004 17:00:38

nikel!

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 .

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
++

Commentaire de kaijo le 06/09/2004 18:17:06

Merci pour cette petite classe très utile !!

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

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

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

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.

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.

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 :)

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

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

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...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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,796 sec (3)

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