Merci de lire ce qui suit avant de poser des questions:
Ce code permet d'appliquer une déformation temporelle EN TEMPS REEL sur la vidéo qui sort d'une webcam. C'est à dire qu'une certaine durée du signal est mise en mémoire dans la carte graphique (par exemple 32 frames) et selon une fonction qui dépend du point de l'image sur lequel on se trouve, le pixel correspondant aura la valeur d'une des "strates" temporelles du signal. Par exemple, le mode par défaut crée un "puit temporel" centré sur le curseur de la souris, c'est à dire que les pixels qui sont au centre du puits sont affichés avec un décalage temporel par rapport aux pixels à l'extérieur du puit.
L'effet peut être assez trippant, voir par exemple la capture...
Pour compiler le programme, il faut déjà installer le package SmartParams fourni.
Pour l'utiliser, il faut déjà bien sûr avoir une webcam installée et prête à fonctionner, ainsi qu'une carte graphique pas trop vieille (en effet, le programme utilise des textures OpenGl 3D, et il faut des drivers à jour). Si ça va trop lentement, il faut soit diminuer la résolution de l'acquisition webcam, soit acheter un PC plus puissant ;-)
IMPORTANT: Lorsqu'on clique sur le boutton "Start", il faudra sélectionner le mode RGB24 lorsque la boîte de dialogue du driver apparait (sinon ça ne fonctionnera pas).
Il y a plein de paramètres sur lesquels on peut jouer:
- Options de capture/Périphérique : le périphérique sélectionné (s'il y a plusieurs webcams installées sur l'ordinateur)
- Options de capture/Frame rate : le taux théorique d'images par secondes (mais la plupart des drivers l'ignorent)
- Performances/Plein écran
- Performances/Double buffer : sur certains systèmes, ça ira plus vite en mode Double Buffer
- Performances/Résolution : utilisée lors du mode plein écran
- Performances/Couches temporelles : taille (en nombre de frames) du buffer temporel. Il est conseillé de n'utiliser des valeurs élevées qu'avec des cartes graphiques puissantes...
- Performances/Résolution mesh : la qualité de l'interpolation (découpage en facettes) de la fonction de déformation
- Paramètres/Theta : voir Paramètres/Méthode de déformation
- Paramètres/Phi : voir Paramètres/Méthode de déformation
- Paramètres/Méthode de déformation : forme de la fonction temporelle de déformation qui peut prendre 3 valeurs:
+ Method1: un puit temporel cônique de rayon phi et de profondeur theta
+ Method2: un maillage périodique de taille phi et de profondeur theta
+ Method3: une "hélice temporelle" tournoyante de vitesse phi et de taille theta
La plupart des paramètres (hormis ceux dans Paramètres/... ) doivent être définis avant de commencer la capture (ou alors il faudra l'arrêter et la relancer). En mode plein écran, il faut appuyer sur "escape" pour faire se réafficher la fenêtre de contrôle et la souris.
J'ai pu remarquer que selon les machines, les performances ne sont pas les même selon qu'on met la partie OpenGl dans le thread principal et la capture dans un thread secondaire, ou réciproquement. J'ai donc créé une architecture qui permet de choisir dans quel thread on veut faire s'exécuter chaque partie du programme: il suffit de faire un glisser-déplacer des 2 items ("Acquisition webcam" ou "rendering OpenGl") de l'une des 2 listbox vers l'autre. Si le programme va trop lentement chez vous, vous pouvez essayer plusieurs configurations parmi les 4 possibles. Là encore, les changements ne seront pris en compte qu'après avoir stoppé et relancé la capture.
Le programme n'a pas de commentaires pour l'instant, j'en mettrai uniquement si quelqu'un les demande.
Amusez vous-bien! <[8=D
2 août 2006 à 20:56
3 août 2006 à 09:29
3 août 2006 à 12:56
3 août 2006 à 12:58
Bizzz... Michèle
3 août 2006 à 13:21
Euh... je ne comprends pas trop ta phrase, mais c'est normal que ça te paraisse nul si tu n'as pas de webcam... en effet, ça ne risque pas de fonctionner!
Ceci dit, en théorie ça peut aussi fonctionner avec les cartes d'acquisition (type TV/tuner) qui gèrent le RGB24, j'ai même testé avec une carte d'acquisition branchée sur un camescope numérique, mais le driver plantait dès que la résolution dépassait 640x480
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.