Wxwidgets et fenetre d affichage... [Résolu]

jojomillenium 136 Messages postés samedi 1 mai 2004Date d'inscription 26 mai 2007 Dernière intervention - 19 mars 2007 à 14:39 - Dernière réponse : ZeDruide 2 Messages postés jeudi 7 décembre 2000Date d'inscription 3 décembre 2008 Dernière intervention
- 20 avril 2008 à 10:09
Bonjour,

J'aimerai en utilisant les wxwidgets afficher une webcam:
Seulement j ai un probleme de compatibilité:
Ci dessous mon code et l erreur:
en utilisant un code trouvé sur ce site voila ce que j'ai:

#include "wx/wxprec.h"
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "Main.h"
#include "Frame.h"
#include "vfw.h"
IMPLEMENT_APP(wxMyFTPApp)
wxMyFTPApp::wxMyFTPApp() : wxApp()
{
}
bool wxMyFTPApp::OnInit()
{
wxApp::OnInit();
wxMyFTPFrame* winCap = new wxMyFTPFrame(NULL);
winCap->SetSize(wxSize(640, 480));
winCap->Show(true);
capDriverConnect(winCap, 0) //You can replace 0 by the number of the driver (0 to 9)
//Le 0 est remplacable par le numéro du driver

//Now capture :
capPreviewScale(winCap,TRUE);
capPreviewRate(winCap,15); //15 frame per second
capPreview(winCap,1); //1 to enable, 0 to disable

//(After connect sequence)

//To capture 1 frame
//Capturer une image

capCaptureSingleFrameOpen(winCap);
capGrabFrameNoStop(winCap);
capCaptureSingleFrame(winCap);
capCaptureSingleFrameClose(winCap);
capCaptureSingleFrame(winCap);

capFileSaveDIB(winCap, "capture.bmp"); //Change you filename

//When your program finish webcam display
capDriverDisconnect(winCap);

return true;
}

Mon erreur :

C:\Documents and Settings\Joh@n\Mes documents\EPFL\Projet de Semestre été\projet\Main.cpp(19) : error C2664: 'IsWindow' : cannot convert parameter 1 from 'class wxMyFTPFrame *' to 'struct HWND__ *'

d'un cote je comprend pourquoi, mais debutant en wxwidget, je ne vois pas comment regler ce probleme! quelqu'un peut til m aider!?

merci
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
cs_LordBob 2865 Messages postés samedi 2 novembre 2002Date d'inscription 11 mai 2009 Dernière intervention - 19 mars 2007 à 23:14
3
Merci
ok mais je ne connais pas tres bien wxWidgets je l'ai juste utilisé tres rapidement pour faire un projet... mais je ne sais vraiment pas comment tu va te débrouiller pour afficher l'image de la webcam avec VFW. surtout que le HWND retourné par VFW est propre à Windows et que wxWidgets fait totalement abstraction de ce type données.

je pense que tu devrais tout simplement oublié VFW pour faire l'acquisition de la webcam et tu devrais utilisé OpenGL qui est bien géré par wxWidgets. De plus avec OpenGL tu pourras conserver ton aspect multiplateforme.

voici quelques sources pour faire l'acquisition de la webcam avec OpenGL:
http://www.cppfrance.com/code.aspx?ID=20846
http://www.cppfrance.com/gma/webcam%20opengl

voila je ne peux rien faire de plus pour toi. alors je te souhaite bonne chance dans tes recherches et pour ton projet.
Bob...
"Vaut mieux se taire et passer pour un con, que de l'ouvrir et ne laisser aucun doute sur le sujet..."

Merci cs_LordBob 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de cs_LordBob
cs_LordBob 2865 Messages postés samedi 2 novembre 2002Date d'inscription 11 mai 2009 Dernière intervention - 19 mars 2007 à 22:59
0
Merci
désoler mais je ne vais pas répondre à ta question, mais plutot te faire une remarque.
en fait tu utilise donc la librairie VFW pour utiliser la webcam, or cette librairie ne fonctionne uniquement sous Windows. Donc pour t'embété à utiliser wxWidgets ?
l'interet d'utiliser wxWidgets, c'est de faire un programme multiplateforme. ton programme serait nettement mieux si tu le codais entierement avec les API Windows...
Bob...
"Vaut mieux se taire et passer pour un con, que de l'ouvrir et ne laisser aucun doute sur le sujet..."
Commenter la réponse de cs_LordBob
jojomillenium 136 Messages postés samedi 1 mai 2004Date d'inscription 26 mai 2007 Dernière intervention - 19 mars 2007 à 23:07
0
Merci
Mon but etant de faire un programme multiplateforme, j aimerai savoir comment afficher une webcam! La seul indication que j ai trouvé concernant les webcam etait vfw! alors j ai essayé!
Maintenant si tu sais comment faire, merci de m indiquer la voie, sinon merci pour ta remarque!
Commenter la réponse de jojomillenium
jojomillenium 136 Messages postés samedi 1 mai 2004Date d'inscription 26 mai 2007 Dernière intervention - 19 mars 2007 à 23:25
0
Merci
Merci pour ton aide, je vais me pencher vers cette solution, j espere que l affichage sera fluide!
Commenter la réponse de jojomillenium
clempar55 59 Messages postés samedi 1 janvier 2005Date d'inscription 4 avril 2007 Dernière intervention - 20 mars 2007 à 12:09
0
Merci
pour faire fonctionner ce programme il faut convertir ta
wxMyFTPFrame en HWND, qui peut lui etre compris par windows. Pour cela remplace
capDriverConnect(winCap, 0)
par
capDriverConnect(winCap->GetHandle(), 0) ;

Mais alors le programme ne fonctionnera que sous windows, et il est vrai qu'il vaut mieux privilégier une solution multiplatforme, comme le suggère LordBob.
Commenter la réponse de clempar55
ZeDruide 2 Messages postés jeudi 7 décembre 2000Date d'inscription 3 décembre 2008 Dernière intervention - 20 avril 2008 à 10:09
0
Merci
Bonjour,
Je fais du dev d'IHM multiplatforme (ingé) , j'utilise WxWidget (IHM), OpenGL (graphique), OpenAL (son), OpenCV (WebCam et traitement d'image) et IPP (traitement numérique payant).

Donc pour utiliser ta webcam dans WxWidget, je pense que tu peux utiliser la biblio OpenCV pour l'acquisition de la cam et OpenGL (avec une fonction d'adaptation) pour l'afficher dans wxWidget.
Elle est facile d'utilisation et il y a plein de tutoriaux dessus sur la toile.

La fonction d'adaptation sera basé sur le passage du pointeur des données de l'image vers les données à afficher sur OpenGL (WxGLCanvas).

J'avais moins d'1 min pour ecrire ce message donc sorry s'il n'est pas claire... lol
Bonne continuation et bonne chance.
Ze Druide

Je n'Avance pas tres Vite, Mais je ne Recule Jamais (A.Lincoln).
        
Eclectique Attitude Together !
Commenter la réponse de ZeDruide

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.