cs_Crepuscule3
Messages postés24Date d'inscriptionsamedi 13 octobre 2007StatutMembreDernière intervention25 novembre 2008
-
30 nov. 2007 à 18:45
cs_Crepuscule3
Messages postés24Date d'inscriptionsamedi 13 octobre 2007StatutMembreDernière intervention25 novembre 2008
-
1 déc. 2007 à 20:06
Bonjour à tous,
je suis actuellement sur un projet de traitement vidéo. Ce projet avance plutôt mais je reste coincé sur l'acquisition des pixels.
Je viens tout juste de passer une étape. J'ai utilisé une fonction (GetCurrentImage(long the format, VARIANT* Buffer, long* theBufferSize)) qui normalement me permet d'aller chercher une image BMP dans le flux MJPEG de la vidéo. Cette image est normalement stocké dans Buffer.
Donc voilà, j'ai ma variable Buffer de type VARIANT et la longueur de l'image theBufferSize de type long, mais je ne sais pas comment obtenir à partir de cela, mon image sous la forme d'un tableau à deux dimensions (correspondant aux pixels sur x et y, résolution 640x480).
Quelqu'un aurait-il une suggestion? (ou un exemple de code, ce serait plus facile pour comprendre)
Voici la définition de la structure VARIANT:
-------------------------------------------------------------------------------------------
struct
Bah tu es sur la bonne piste on dirait. Les variant sont conçus pour
contenir à peu près n'importe quoi. D'après le code VB que j'avais
posté, on peut supposer que ton variant contient un tableau de Byte. Tu
peux le vérifier en faisant des tests sur le champ vt de ton variant.
Genre if (Buffer->vt & VT_ARRAY) alors c'est un tableau.
Quand un variant contient un tableau, il est pointé par parray. Mais l'aide précise qu'il ne faut pas accèder à ce pointeur directement, mais plutôt utiliser les fonctions faîtes pour.
Dans ton cas tu peux par exemple utiliser SafeArrayAccessData pour récupérer un pointeur sur les données de ton tableau. Puis tu peux
par exemple utiliser CxImage comme je te le proposais pour avoir une
image sur laquelle tu peux travailler. Et ensuite seulement tu pourras
utiliser SafeArrayUnaccessData.
<hr size="2" width="100%" />3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08
cs_Crepuscule3
Messages postés24Date d'inscriptionsamedi 13 octobre 2007StatutMembreDernière intervention25 novembre 2008 1 déc. 2007 à 20:06
Merci pour le coup de main.
Je n'ai pas eu le temps de me mettre sur ce projet aujourd'hui (beaucoup de boulot en ce moment à la fac), mais j'ai suivit ta piste et il semble que se soit la bonne piste, vu ce que j'ai trouvé comme infos sur la fonction SafeArrayAccessData. Je n'arrive encore pas à la mettre en oeuvre, j'ai quelques problèmes de pointeurs. Par ailleurs, je ne suis pas sûr de mettre en oeuvre les bonnes variables, bien que j'en sois quasiment sûr.
Je pense que je me mettrais plus sérieusement là dessus demain. Merci encore pour les pistes.
En revanche, si tu as d'autres pistes ou conseils, je suis preneur.