Analyse d'une vidéo

Signaler
Messages postés
75
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
3 juin 2012
-
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
-
Bonjour,

J'ai une vidéo où le fond est d'une couleur uni. Par dessus, j'ai un rectangle d'une autre couleur uni.

Je voudrais savoir s'il est possible que VB analyse ma vidéo dans le but que ce rectangle soit recouvert par une picture box par exemple...

Merci !

8 réponses

Messages postés
75
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
3 juin 2012

Petite précision, ce fameux rectangle se déplace aléatoirement... (pour l'instant en 2D, mais cela deviendra de la 3D).
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
Le rectangle est dans la vidéo ?

Ciaò
[mailto:madmatt_12@msn.com MadMatt]
www.madmatt.fr.st
Messages postés
75
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
3 juin 2012

Oui oui...
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
Ben déjà, la première étape serait de pouvoir capturer l'image en cours de la vidéo afin de pouvoir la traiter. Dans quoi la lis-tu ? Dans un picturebox ? Et de quelle façon la lis-tu ?
Ensuite viens le traitement proprement dit de l'image : tu doit scanner chaque pixel afin de retrouver ton rectangle de couleur unie.
Puis tu affiche ton picturebox au dessus du rectangle que tu auras détecté.

Mais pour parler plus précisément, il nous faut plus d'infos. Comme par exemple comment tu lis la vidéo.

Ciaò
[mailto:madmatt_12@msn.com MadMatt]
www.madmatt.fr.st
Messages postés
75
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
3 juin 2012

Pour l'instant, elle est lu par l'ActiveX de VLC...

Je suis pret à passer par n'importe qu'elle moyen. L'idéal, le top pour ainsi dire, ca serait de recouvrir le rectangle directement dans la vidéo... à la volée (on peut rever) !
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
Ok alors comme c'est lu avec un ocx externe, ça risque peut etre d'etre un peu plus difficile on va voir.
Déjà il faut trouver un moyen de faire une capture de l'image affichée (je pense que ça sera le plus gros problème, mis à part peut etre la rapidité).
Car ça risque d'étre lent, enfin j'en sais rien j'ai jamais rien vu de ce genre.

Essaye déjà, basiquement, de faire une capture d'écran de la fenetre, voir si ça marche. Parce que avec Windows Media Player par exemple, selon comment il est configuré pour lire les vidéo, c'est pas toujours possible.
Pendant ce temps j'essaye de trouver quelque chose, et je pense qu'il faut chercher du coté de BitBlt (c'est une api qui permet de faire une copie d'image, la source pouvant etre une picturebox).
Ah oui, essaye de voir si ton ActiveX (dans ses propriétés) a un handle, ou un hdc > c'est à dire regarde s'il a les propriétés .hwnd ou .hdc

Ciaò
[mailto:madmatt_12@msn.com MadMatt]
www.madmatt.fr.st
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
Insérer un picturebox nommé Picture1

Private Declare Function
BitBlt
Lib
"gdi32" (
ByVal
hDestDC
As Long,
_

       
ByVal
x
As Long, ByVal
y
As Long, ByVal
nWidth
As Long, ByVal
nHeight
As Long,
_

       
ByVal
hSrcDC
As Long, ByVal
xSrc
As Long, ByVal
ySrc
As Long, ByVal
dwRop
As Long) As Long


Private Const
SRCCOPY = &HCC0020


Private Sub
Form_Load()

' Mettre ScaleMode en Pixel et Autoredraw = true

' (Pour enregistrer l'image en mémoire)

' Charger une Image dans Picture1

' Cette exemple copie sur form1 une image 32x32 à partir de picSource

x = BitBlt(Picture1.hDC, 0, 0, DimensionX, DimensionY, CONTROLESOURCE.hDC, 0, 0, SRCCOPY)

Form1.Refresh
' Montre l'image une fois la page rafraîchit

End Sub

Je pense que DimensionX et DimensionY sont les dimensions de ton controle ActiveX
Attention : tout doit etre en pixels, donc si tu a Controle.Width
il faut faire
WidthEnPixels=Controle.Width / Screen.TwipsPerPixelsX

Enfin essaye d'adapter ça, si t'y arrive pas dis moi la ou tu bloque



Ciaò
[mailto:madmatt_12@msn.com MadMatt]
www.madmatt.fr.st
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
Tiens si ça peut t'aider, une page d'explication sur l'api en question :
http://docvb.free.fr/apidetail.php?idapi=144

(désolé de t'envoyer 3 messages à la fois lol)

Ciaò
[mailto:madmatt_12@msn.com MadMatt]
www.madmatt.fr.st