Wxwidgets et fenetre d affichage...

Résolu
jojomillenium Messages postés 136 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 26 mai 2007 - 19 mars 2007 à 14:39
ZeDruide Messages postés 2 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 3 décembre 2008 - 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

6 réponses

cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
19 mars 2007 à 23:14
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..."
3
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
19 mars 2007 à 22:59
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..."
0
jojomillenium Messages postés 136 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 26 mai 2007
19 mars 2007 à 23:07
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!
0
jojomillenium Messages postés 136 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 26 mai 2007
19 mars 2007 à 23:25
Merci pour ton aide, je vais me pencher vers cette solution, j espere que l affichage sera fluide!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
clempar55 Messages postés 59 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 4 avril 2007
20 mars 2007 à 12:09
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.
0
ZeDruide Messages postés 2 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 3 décembre 2008
20 avril 2008 à 10:09
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 !
0
Rejoignez-nous