begin process at 2008 05 16 06:09:12
1 173 216 membres
58 nouveaux aujourd'hui
13 970 membres club

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é: 23 327 / 3 052

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

  • 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

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS