Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2012-04-27 18:04:51 PureData : Pixeliser une video issue de webcam

Marty
membre
Date d'inscription: 2012-04-27
Messages: 143

PureData : Pixeliser une video issue de webcam



Bonjour,

Mon but est de traiter une image issue d'une webcam pour en afficher une représentation sur du matériel (par exemple une matrice de leds ou une matrice de moteur etc...) piloté par Arduino.

Au passage je suis débutant dans les deux domaines ! (PD et Arduino)

Mon idée de base est donc de récupérer l'image d'une webcam sur un PC (sous linux), traiter l'image et envoyer le résultat à l'arduino par port série lequel traitera ces infos pour piloter une matrice de leds par exemple.

Mon idée de départ est donc de décomposer l'image recue en nombre de points équivalent au matériel utilisé. Par exemple si j'utilise une matrice de 40 x 40 leds je vais "dégrader" mon image de webcam en 40 x 40 pixels (ou carrés), en gros une mosaique.

Ca donne donc :

- récupérer l'image
- passer en valeurs de gris
- transformer en mosaique 40 x 40
- envoyer les valeurs (luminosité) de chaque carré de la mosaique à l'arduino par port série.
- afficher l'image sur la matrice (chaque led ayant une luminosité proportionelle à la valeur du carré)

Voila. Donc mon pb se trouve sur PureData. J'utilise GEM. J'arrive bien à récupérer l'image webcam, je la passe bien en valeur de gris (objet pix_grey) mais je ne trouve pas le moyen de transformer cette image en mosaique, disons que je ne sais pas par quel moyen passer. Existe-t-il un objet pour ca ? sinon comment faire ?

je joins 2 images qui sont une idée de ce que j'aimerais obtenir apr-s traitement de l'image.

http://codelab.fr/up/Capture-du-2012-04-27-16-40-47-1.png

http://codelab.fr/up/Capture-du-2012-04-27-16-40-54.png

Merci à tous.

Hors ligne

 

#2 2012-04-27 19:52:13 Re : PureData : Pixeliser une video issue de webcam

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: PureData : Pixeliser une video issue de webcam



Bonsjours et bienvenue...

Le plus simple, si tu es débutant est de passer par un [pix_resize] en collant un [quality 0( à la texture...
Après, il existe une solution avec [gemframebuffer]... mais si la première te convient, oublie...

Bon courage... smile

http://codelab.fr/up/pix-resize.png


L'Amour au Peuple !

Hors ligne

 

#3 2012-04-27 19:53:01 Re : PureData : Pixeliser une video issue de webcam

rep
modérateur
Lieu: Toulouse
Date d'inscription: 2008-02-27
Messages: 1444
Site web

Re: PureData : Pixeliser une video issue de webcam



Peut être avec [pix_resize] ?
(pas testé)

Hors ligne

 

#4 2012-04-27 19:54:04 Re : PureData : Pixeliser une video issue de webcam

rep
modérateur
Lieu: Toulouse
Date d'inscription: 2008-02-27
Messages: 1444
Site web

Re: PureData : Pixeliser une video issue de webcam



Hahaha Olivier gagne la partie avec 48 secondes d'avance smile

Hors ligne

 

#5 2012-04-27 20:00:28 Re : PureData : Pixeliser une video issue de webcam

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: PureData : Pixeliser une video issue de webcam



Écoute...
J'ai fait ça récemment pour parcourir une image afin de choper ses valeurs colorimétriques...
Je n'ai même pas eu à changer les valeurs, c'était du 40x40... smile

Si tu ne veux écouter que les valeur en niveau de gris, la sortie droite de [pix_data] te le permet...

Bon courage...

EDIT: le [makesymbol ] sert à une autre partie de mon patch que je t'épargne volontairement si tu es débutant...
EDIT 2 : @Rep : big_smile

http://codelab.fr/up/parcours-image-pd.png

Dernière modification par Olivier (2012-04-27 20:03:15)


L'Amour au Peuple !

Hors ligne

 

#6 2012-04-27 23:51:42 Re : PureData : Pixeliser une video issue de webcam

philippe boisnard
membre
Date d'inscription: 2008-09-23
Messages: 478

Re: PureData : Pixeliser une video issue de webcam



Il y a un shader qui est envoyé dans la discussion sur les shaders : il y a un pixelate puissant en glsl, à mon avis tu en tireras de bons résultats. :-) tu télécharges la librarie a_shad, et tu regares le fichier 0_0 qavec tous les helps.

Dernière modification par philippe boisnard (2012-04-27 23:54:49)

Hors ligne

 

#7 2012-04-28 00:27:29 Re : PureData : Pixeliser une video issue de webcam

Marty
membre
Date d'inscription: 2012-04-27
Messages: 143

Re: PureData : Pixeliser une video issue de webcam



Ouah ! la vache ! eh ben c'est actif ici, ça fait plaisir !

Merci à tous pour ces quelques pistes que je vais m'empresser d'explorer.

@Olivier : merci pour ce patch dont je ne comprend que les 3 premiers objets smile mais ça fera un très bon exemple à décortiquer pour aller plus loin !

Je vais néanmoins commencer avec [pix_resize] histoire de voir ce que ça peut donner.

D'ailleurs au passage, mais c'est encore prématuré, comment on envoi le résultat à un Arduino ?
Je veux dire j'ai déja envoyé des infos par port série sur l'USB pour allumer une LED (oui c'est un début !) mais les données de l'image je vois pas encore. On envoie la [Gemlist] ?

Vous l'aurez compris, je reviens vite wink

Merci encore à tous.

Hors ligne

 

#8 2012-04-28 02:15:45 Re : PureData : Pixeliser une video issue de webcam

pob
Exterminator
Lieu: Rennes
Date d'inscription: 2009-10-13
Messages: 765
Site web

Re: PureData : Pixeliser une video issue de webcam



Mais comment faire pour utiliser le shader si on veut par la suit envoyer les résultats de la décimation vers un arduino ? En CUDA à la limite ; pour continuer notre ultime conversation de jeudi dernier, Philippe. wink

Il y a sans doute des choses à faire avec gridflow. http://www.gridflow.ca

Hors ligne

 

#9 2012-04-28 02:22:17 Re : PureData : Pixeliser une video issue de webcam

pob
Exterminator
Lieu: Rennes
Date d'inscription: 2009-10-13
Messages: 765
Site web

Re: PureData : Pixeliser une video issue de webcam



Pour ce qui est de l'envoi à l'Arduino, c'est un protocole à écrire sans doute puisque Firmata n'est pas prévu pour faire ce genre de boulot. 40 x 40 ça fait un paquet de LED en tout (1600).
Une solution c'est de reprendre le code du LEDpong du Tetalab. Ca a été écrit pour une série de puces Max7313
http://tetalab.org/blog/13 et http://tetalab.org/blog/19
et le code ici : http://git.tetalab.org/index.php/p/ledp … ee/master/
Mais déjà avec 432 LED avec 16 niveaux pour chacune, le petit Arduino trime pour envoyer toutes les infos.
Le protocole qu'ils ont écrit est fait pour processing, mais ça doit pas être très compliqué à écrire pour Pd.

Dernière modification par pob (2012-04-28 02:27:02)

Hors ligne

 

#10 2012-04-28 12:00:44 Re : PureData : Pixeliser une video issue de webcam

Marty
membre
Date d'inscription: 2012-04-27
Messages: 143

Re: PureData : Pixeliser une video issue de webcam



Pas mal comme liens !
Par contre pour envoyer de PD à Arduino j'envoie directement de [gemlist] à [comport] ou il faut une conversion ou quelque chose de plus complexe ?

Hors ligne

 

#11 2012-04-28 12:21:06 Re : PureData : Pixeliser une video issue de webcam

pob
Exterminator
Lieu: Rennes
Date d'inscription: 2009-10-13
Messages: 765
Site web

Re: PureData : Pixeliser une video issue de webcam



Il faudra sans doute utiliser [pix_data] pour récupérer la valeur des pixels une fois la décimation faite comme te disait Olivier plus haut.

Hors ligne

 

#12 2012-04-28 12:36:37 Re : PureData : Pixeliser une video issue de webcam

Marty
membre
Date d'inscription: 2012-04-27
Messages: 143

Re: PureData : Pixeliser une video issue de webcam



ah oui je viens de comprendre le principe de [pix_data] ça m'a l'air pas mal oui. Bon ben c'est parfait ca me fait une bonne base de travail.

Je vous tiens au courant.

merci à tous.

Hors ligne

 

#13 2012-04-28 13:33:20 Re : PureData : Pixeliser une video issue de webcam

Marty
membre
Date d'inscription: 2012-04-27
Messages: 143

Re: PureData : Pixeliser une video issue de webcam



Booooon !
et bien ça m'a l'air d'aller dans le bon sens !
La première solution d'Olivier semble porter ses fruits je vais donc continuer dans ce sens.
Effectivement je pense utiliser [pix_data] via sa sortie valeur de nuance de gris.

Maintenant il ma faut comprendre l'utilisation des triggers pour prendre une mesure d'un pixel à la fois et aussi la logique des boucles dans puredata. Autant en programmation texte comme le C ou PHP je vois comment boucler mais j'ai pas encore compris la logique de PD !

si vous avez des exemples simples ca pourrait m'aider, mais je vais regarder la doc FLOSS.

ci joint : voila ou j'en suis.

http://codelab.fr/up/Capture-2-2.png

Hors ligne

 

#14 2012-04-28 14:02:20 Re : PureData : Pixeliser une video issue de webcam

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: PureData : Pixeliser une video issue de webcam



Une des manière de pondre des boucles avec Pd est la boite [repeat ]...
C'est elle que j'utilise pour lire l'image dans ma deuxième capture d'écran ci dessus...

Sans trop prendre de risque, ce bout de patch est exactement ce dont tu as besoin pour lire ton flux...
Pour faire simple, à chaque nouvelle image (donc 20 fois par seconde) il réalise 1600 fois ce qui suit...
En ajoutant un compteur, je m'assure que l'opération porte sur des pixels différents...

Bon courage...

smile

Dernière modification par Olivier (2012-04-28 14:02:33)


L'Amour au Peuple !

Hors ligne

 

#15 2012-04-28 16:14:52 Re : PureData : Pixeliser une video issue de webcam

Marty
membre
Date d'inscription: 2012-04-27
Messages: 143

Re: PureData : Pixeliser une video issue de webcam



Merci Olivier.
Oui je vois bien que ta solution est exactement ce qu'il me faut. Ceci dit je suis plutot partisan de comprendre ce que je fais plutot que de copier bêtement. Mais justement je vais décortiquer ton patch pour voir comment tu as travailé la chose.

Merci encore

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024