Extraction d'image d'un flux video

Little3D Messages postés 2 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 27 janvier 2003 - 27 janv. 2003 à 14:37
freemanlow Messages postés 2 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 10 avril 2008 - 10 avril 2008 à 10:40
je previsualise un flux video capturé depuis une camera via une carte d'acquisition video. Je cherche a traiter l'image a la volé. Je sais capturer une image et la stocker dans un Bitmap. Ce traitement est trés lourd et ne me convient pas. Comment peut on traiter un flux video ?

d'avance merci

Little3D

13 réponses

Little3D Messages postés 2 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 27 janvier 2003
27 janv. 2003 à 14:42
autant pour moi ...

au fait je développe sous visual studio 6 en C++
Je gère l'acquisition video avec la librairie Video For Windows (vfw.h)

remarque : si vous avez des info sur l'acquisition video en C++ (cf : Direct Show par exemple ? ou openGL ?) ...
0
cs_thecure Messages postés 1 Date d'inscription vendredi 3 septembre 2004 Statut Membre Dernière intervention 6 septembre 2004
3 sept. 2004 à 15:41
Salut, bon je vais pas pouvoir t'aider mais j'ai une question pour toi!
j'ai programmé quelques fonctions de traitement d'image sous visual c++ 6 ( seuillage, filtrage etc etc). Je peux donc traiter des images ".bmp" et ".jpg" enregistrées sur le disque dur de mon PC. D'autre part je bouqine en ce moment "MFC" pour créer une interface afin de mettre en place un petit logiciel qui rendra le traitement des images plus facile d'utilisation...J'ai pour projet de créer également un icone sur l'interface qui permettrai d'acqérire une image (à partir d'une camera et de la carte d'acquisition) puis de l'enregistrer sur le disque dur puis d'effectuer un ou deux traitement!

ayant un pc, visual et supposant avoir une camera et une carte d'acqui, ( cve qui pourrais se faire) est-il possible de programmer sous visual c++ 6, l'acquisition d'une image et son enregistrement! c'est a dire quand j'execute l'icone acquisition, le programme donne l'ordre a ma carte d'acquisition d'acquerir l'image vu par la caméra. puis l'enregistre!
Apparemment tu l'as fais. pourrais tu me donner des informations!

merci beaucoup
0
t_bah Messages postés 1 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 18 octobre 2004
18 oct. 2004 à 15:30
salut!!
je ne vais pas vous apporter de l'aide mais le sujet m'interesse beaucoup car en se moment je developpe sous devc++ un progr de reconnaissance du visage. je m'explique: j'ai pour le moment fini de concevoir la electronique composée de deux caméras l'une chargé de capter l'image et l'autre reliée à la carte d'aquition et chargé de véhiculer les images au niveau du PC.deux caméras parceque j'ai eu des problèmes de déformation du signal j'ai essayé de placer un redresseur mais sa n'a pas marché.pr ce qui est du programme en question il doit comporter une phase d'enregistrement d'une plage d'images qui seront placées dans un du DD puis une phase pendant laquelle il effectuera une comparaison entre l'image capturé sur l'instant par la caméra et la plage d'image préenregistré dans le DD.si les deux correspondent le programme emmet un petit bip et si c'est le contraire il emmet un bipn élevé.
si vous avez des idées la dessus merci de me les communiquer.
T.
0
salem3 Messages postés 16 Date d'inscription vendredi 9 juillet 2004 Statut Membre Dernière intervention 7 mai 2008
4 mars 2005 à 13:19
salut Little3D, malheureusement je ne peut pas te donner de l'aide mais par contre
toi tu peut m'en donner : voila, je suis entrain de développer un programme en MFC qui a pour
but de capter et une image à partir d'une séquence et de la stocker dans un Bitmap.
Alors si tu peut me donner de l'aide ça searait génial. répond moi vite.
adresse e-mail: [mailto:d.salem4@voila.fr d.salem4@voila.fr]
0

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

Posez votre question
homerde Messages postés 16 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 6 juillet 2007
8 mars 2005 à 23:17
salut Little3D et les autre, avez vous essaye avec vfw? je fais des
tratements à la volée avec si vous avez besion d aide...
0
chasse18 Messages postés 51 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 10 juin 2005 1
15 avril 2005 à 16:03
Pour ma part cela m'intéresse car j'essaye de récupérer une image de la webcam que je posséde pour ensuite pour la passer a mon encodeur.
Donc si tu as Info sur l'utilisation de vfw pour capturer l'image d'une webcam sa m'niteresse Enormement
Amicalement Chasse18
0
b_electronique Messages postés 8 Date d'inscription vendredi 7 avril 2006 Statut Membre Dernière intervention 7 mai 2006
2 mai 2006 à 19:53
Bonjour Little3D, c’est vrai ça fait longtemps que tu travail sur les flux vidéo mais, ma question est : comment on peut faire un traitement sur un flux vidéo tout d’abord en enregistre les flux dans un fichier BMP, merci pour ton aide.
0
rami10 Messages postés 1 Date d'inscription jeudi 22 février 2007 Statut Membre Dernière intervention 28 mars 2007
28 mars 2007 à 14:09
salut a tous


j'ai des difficultés de transformer une image bmp 256 couleurs en une matrice de bits en visual c++ et merci d'avance
0
marzouk20 Messages postés 8 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 21 juillet 2008
24 mai 2007 à 00:38
qelq1 pe m aidé comment on pe fair la mis en corespandanc entr ls point d'ontérét et merci c urgen aid moi svp
0
marzouk20 Messages postés 8 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 21 juillet 2008
24 mai 2007 à 00:39
point d'intérét dsl :$
0
stanilou Messages postés 193 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 18 novembre 2009
31 janv. 2008 à 19:18
Bonjour,
Je fais un petit up de ce topics car ma question est exactement la même et je n'ai pas trouvée de réponse...
Pour mettre une image dans mon Timage actuellement je fais:
capFileSaveDIB(Video, "cam.BMP");
Image1->Picture->Bitmap->LoadFromFile("cam.BMP");

Mais bon avec une image toute les 100ms ça fait un peu lourd surtout avec tous les calculs que j'ai derrière !
J'ai vus plusieurs fonctions mais impossible d'en tirer quelque chose... Notament une fonction capSetCallbackOnFrame .

Merci de votre aide si vous pouvez m'aider ;)
0
stanilou Messages postés 193 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 18 novembre 2009
4 févr. 2008 à 19:53
up
0
freemanlow Messages postés 2 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 10 avril 2008
10 avril 2008 à 10:40
Bonjour,

je cherchais la même chose que toi Stanilou et je suis tombé sur votre sujet....
Pour ce qui est de capSetCallbackOnFrame, la MSDN (américaine car la française répond toujours à côté) nous dit ceci ( http://msdn2.microsoft.com/en-us/library/ms707245(VS.85).aspx?s=1)

"The capSetCallbackOnFrame macro sets a preview callback function
in the application. AVICap calls this procedure when the capture window
captures preview frames. ....
Remarks

The capture window calls the
callback function before displaying preview frames. This allows an
application to modify the frame if desired. This callback function is
not used during streaming video capture."

Visiblement, tu ne peux pas t'en servir au moment de l'acquisition réel mais seulement si tu fais de l'acquisition en mode "preview"...... glurps !!!
Donc, à moins d'avoir une bête de machine qui peut enregistrer chaque image/seconde en fichier et les analyser à la volée, je ne vois pas comment on peut traiter un flux vidéo en live.
Ma démarche perso était pour essayer de détecter des mouvements ou des objets devant la camera mais là, je ne vois pas du tout comment faire. Même certaines boîtes spécialisés (qui vendent des API pour accéder au caméra 1394) n'ont pas l'air d'inclure du processing de flux dans leurs APIs.

Je me demande bien comment un radar a le temps de prendre une photo en évaluant juste avant en une fraction de seconde la vitesse de l'objet passant devant l'objectif.... à moins que d'autres capteurs ne soit présent !!!

Ah !! surprise, que viens-je (super français !!) de trouver ???
capSetCallbackOnVideoStream ( http://msdn2.microsoft.com/en-us/library/ms707249(VS.85).aspx )

"The capSetCallbackOnVideoStream macro sets a callback function
in the application. AVICap calls this procedure during streaming
capture when a video buffer is filled. The capture window calls the callback function before writing the
captured frame to disk. This allows applications to modify the frame if
desired."

Par contre, débarquant fraichement dans cette API, je ne peux pas te dire comment l'utiliser...
Juste que tu peux, je pense, regarder aussi capVideoStreamCallback :
(http://msdn2.microsoft.com/en-us/library/ms707290(VS.85).aspx)
"The capVideoStreamCallback function is the callback function used with streaming capture to optionally process a frame of captured video"

J'espère t'avoir un peu aidé..... cette recherche est pour moi du domaine personnel et amateur donc je ne peux t'aider plus pour le moment (tant que j'aurais pas commencé à essayer de capturer des images d'une cam).

Juste une dernière note, il me semble que généralement les boites qui font du traitement en temps réel sur les images de caméra utilisent des "systèmes embarqués", conçus spécialement pour le traitement voulu..... mais je ne suis pas un expert !!!!

Bonne journée à tous !!!

glBegin(GL_SIGNATURE);
glDrawSignature(" LOW ");
glEnd();
0
Rejoignez-nous