Exploitation de données depuis Blender
Touriste
Inscrit:
03/10/2013 09:42
Post(s): 2
Bonjour à tous,

J'ai téléchargé il y a peu le logiciel blender pour utiliser le suivi automatique d'un point sur une vidéo à l'aide la fonction Track. Étudiant la marche de l'être humain que je souhaite modéliser sous Matlab j'ai donc filmé un cobaye avec des marqueurs de couleurs sur ses articulations.

J'ai donc les trajectoires de mes points, cependant j'aimerais sortir les valeurs sous forme de tableau pour pouvoir les exploiter sous forme graphique. Est ce possible avec le logiciel Blender?

De plus j'aimerais définir une origine et des axes afin d'avoir des valeurs normalisées.

En vous remerciant d'avance pour votre aide

Contribution le : 03/10/2013 10:11
Créer un fichier PDF de la contribution Imprimer


Re: Exploitation de données depuis Blender
OverdOzed
Inscrit:
16/01/2011 17:05
De Le plus grand terrier du monde ! Et le plus high-tech.
Post(s): 4058
Si je comprends bien, tu souhaite récupérer pour chaque image de ta vidéo la position de tes marqueurs, et reconstruire la marche de ton cobaye ?
Auquel cas c'est largement possible, un script python (tu t'y connais ?) peut récupérer tes données sous forme de tableau à chaque image de l'animation. Ensuite soit tu récupère ces données brutes soit il peut les exporte sous un format ouvrable par un tableur classique. Pour les exporter directement sous matlab aucune idée, mais je pense qu'il doit exister des librairies pour cela.
Ensuite pour l'origine et les axes, tu peux retraiter des coordonnées après coup: exemple tu décide que le point A(x,y) devient l'origine, alors pour le point B(x+1,y+4), tu fait (Bx-Ax, By-Ay) et tu as tes coordonnées par rapport à ton origine. Tu peut même utiliser un trackeur statique (qui ne suit aucun point) comme origine dans ton script. Ce sera certainement plus confortable pour toi.
Par contre pour les axes c'est plus compliqué, le retraitement des données va être plus compliqué (si ton repère est pas orthogonal...).

Mais oui c'est parfaitement faisable.

Bon blend comme on dit içi ! Et bienvenu sur le

Contribution le : 03/10/2013 10:46
Créer un fichier PDF de la contribution Imprimer


Re: Exploitation de données depuis Blender
OverdOzed
Inscrit:
29/04/2007 19:11
De Nîmes...300 jours de soleil par an, inondations le reste du temps
Post(s): 3774
Si je comprends bien, tu as déjà fait le tracking et tu as une animation exploitable dans Blender. Dans ce cas, en passant par un script Python ça devrait marcher.

Je ne connais pas précisément l'API Python pour Blender (ni les bibliothèques standards), mais en pseudocode ça donnerait :
récupérer les empties qui servent au tracking et les stocker dans une liste
ouvrir un fichier en écriture
pour chaque empty dans la liste : 
   initialiser une chaîne de caractères
   pour i de 0 à longueur de l'animation :
      ajouter la position actuelle et un caractère de séparation au choix à la chaîne
   fin pour
   écrire la chaîne à la fin du fichier, ajouter un retour à la ligne
fin pour
enregistrer et libérer le fichier.

Il est probablement préférable de stocker les lignes en mémoire pour les écrire toutes d'un coup à la fin, mais c'est un détail d'implémentation, le principe reste le même.

De cette façon, tu enregistres un fichier CSV ; c'est un format standard donc tu dois pouvoir l'importer dans Matlab. Au pire tu importes dans Excel, il fait ça très bien et tu pourras faire tes graphes .

Les valeurs seront normalisées, mais par rapport au repère de Blender. En parentant tous les empties de tracking à un empty isolé, tu peux corriger les axes en jouant sur la rotation et l'échelle de l'empty parent (c'est le plus simple si tu connais le décalage angulaire, sinon bon courage pour le calculer...).

Contribution le : 03/10/2013 10:49
_________________
|C'est en forgeant qu'on devient forgeron, c'est en mouchant qu'on devient moucheron et c'est en sciant que Léonard devint scie.
Créer un fichier PDF de la contribution Imprimer


Re: Exploitation de données depuis Blender
OverdOzed
Inscrit:
27/11/2010 19:09
Post(s): 406
il y a, aussi, le format BVH que Blender gère bien, qui contient une description de la structure et la liste des coordonnées image par image. Ce format sert notamment dans le transfert de capture de mouvements, ou l'échange d'animation entre logiciels différents.

- -
S.

Contribution le : 03/10/2013 14:14
Créer un fichier PDF de la contribution Imprimer


Re: Exploitation de données depuis Blender
Touriste
Inscrit:
03/10/2013 09:42
Post(s): 2
Bonsoir, tout d'abord merci pour les réponses et la rapidité de celles-ci.

J'ai en effet un track sur une vidéo mp4 et je voudrais ressortir des tableaux me permettant d'avoir la position de chacun des points en fonction du temps. Que signifie des valeurs normalisées par rapport au repère Blender? Est il possible de définir un repère soit même en connaissant une des grandeurs caractéristiques présentes sur la vidéo?

Enfin je n'y connais absolument en python si ce n'est que c'est un langage de codage, comment faire pour insérer ces lignes de code dans Blender?

Un grand merci et bonne soirée

Contribution le : 06/10/2013 20:10
Créer un fichier PDF de la contribution Imprimer


Re: Exploitation de données depuis Blender
OverdOzed
Inscrit:
11/11/2007 10:33
Post(s): 1749
Si tu n'y connais rien en Python, regarde plutôt du côté de la solution de Sulivan. Mais je ne pourrais pas en dire plus car je ne connais aps du tout le format BVH :S

Contribution le : 06/10/2013 20:13
_________________
La Tortue se meut !
Créer un fichier PDF de la contribution Imprimer


Re: Exploitation de données depuis Blender
OverdOzed
Inscrit:
15/06/2006 10:11
De Rennes
Post(s): 759
Bonjour,
Juste une remarque en passant : si j'étais toi je ferais ça à la barbare : associer à chaque tracker un point blanc de taille 1 pixel, faire un rendu sur fond noir (avec un seul point à la fois). Ensuite toutes ces vidéos (autant de vidéos que de points trackés) tu les charges sous Matlab et pour chacune tu repères la position du point blanc.
C'est très, très moche je sais, mais encore une fois, "si c'était moi", je sais que ça irait plus vite comme ça plutôt que de me pencher sur la documentation Python
Après, si tu débutes sous Blender, il sera sans doute aussi rapide d'écrire un script.

Contribution le : 07/10/2013 19:06
Créer un fichier PDF de la contribution Imprimer


Re: Exploitation de données depuis Blender
OverdOzed
Inscrit:
16/01/2011 17:05
De Le plus grand terrier du monde ! Et le plus high-tech.
Post(s): 4058
Citation :

Bonjour,
Juste une remarque en passant : si j'étais toi je ferais ça à la barbare : associer à chaque tracker un point blanc de taille 1 pixel, faire un rendu sur fond noir (avec un seul point à la fois). Ensuite toutes ces vidéos (autant de vidéos que de points trackés) tu les charges sous Matlab et pour chacune tu repères la position du point blanc.
C'est très, très moche je sais, mais encore une fois, "si c'était moi", je sais que ça irait plus vite comme ça plutôt que de me pencher sur la documentation Python
Après, si tu débutes sous Blender, il sera sans doute aussi rapide d'écrire un script.


Oui c'est la solution de Pixelvore est bien pls simple si tu ne connait pas python.
En plus MatLab possède un langage de programmation propre ?
Car à ce moment la tu rend ton animation avec des points blancs(par exemple) et ensuite avec un script MatLab tu regarde sur chaque image les coordonnées de tes points blancs. Et voilà, tu n'as plus qu'a les retraités comme je disait plus haut pour avoir l'origine voulue.
Mais je dit peut-être des conneries, je ne connaît Matlab que de nom alors je sais pas si tu peut faire ça dessus...

Contribution le : 08/10/2013 16:03
Créer un fichier PDF de la contribution Imprimer


Re: Exploitation de données depuis Blender
OverdOzed
Inscrit:
15/06/2006 10:11
De Rennes
Post(s): 759
C'est tout à fait possible avec Matlab, il dispose de fonctions pour charger des vidéos. Je ne l'ai jamais utilisé pour traiter de la vidéo, mais pour de l'image statique j'ai déjà fait et c'est juste 2 lignes pour passer d'un fichier image à une matrice chargée en mémoire :

img = imread('lena.tiff');% bien mettre Matlab dans le bon répertoire
img = im2double(img); % pour passer en nombres à virgules de 0 à 1

Ensuite pour trouver la position du point blanc suffit de faire :

[maxValue maxIndex] = max(img(:));

maxValue on s'en fiche ça donnera le 1.0 du pixel blanc, ce qui importe c'est maxIndex qui contiendra la position du pixel blanc, en coordonnées "linéaires" où on considère que les colonnes de l'image ont été mises bout à bout. Pour repasser en coordonnées ligne - colonne :

height = size(img, 1); width = size(img, 2); % hauteur et largeur de l'image / nombre de lignes et colonnes
jMax = floor(maxIndex / height) + 1;
iMax = maxIndex - (jMax-1) * width;

Et là (iMax, jMax) sont les coordonnées ligne - colonne du pixel blanc.

En espérant que ça puisse servir à renovatio73 :)

[edit] ou sinon on peut effectuer le calcul du max colonne par colonne au lieu de le rechercher dans toutes les colonnes mises bout à bout. Comme ça on trouve direct les coordonnées ligne - colonne sans avoir à convertir :
[colMaxs jMaxs] = max(img); % colMaxs est un vecteur contenant le max de chaque colonne, jMaxs est un vecteur contenant la ligne du max de chaque colonne
[max iMax] = max(colMaxs); % ensuite on scanne colMax et on trouve la ligne du max
jMax = jMaxs(iMax); % et enfin dans jMaxs on prend l'indice qui correspond à la bonne ligne

Contribution le : 08/10/2013 16:48
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
Compte*
Nom   Mot de passe   Authentification
Message:*



[Recherche avancée]



Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
Moteurs de rendu rendu Povray sous Blender 2.6 + trace de log 7 12035 Aujourd'hui 00:25:30
MauriceRaybaud 
Questions & Réponses [non résolu] Personnage et CAT5 - VRCHAT 0 19 Hier 22:31:10
Muffet 
Questions & Réponses Conseils pour modéliser un corps 4 118 Hier 17:48:43
moonboots 
Questions & Réponses Problème avec le nodes Color Ramp 3 93 Hier 17:22:54
JaAlVir657 
Python & Plugins [non résolu] obtenir un résultat fixe suite au déplacement souris 0 29 Hier 16:09:22
Redstar 
[WIP] et travaux terminés Les fonds de mes rendus 3 76 Hier 00:42:18
Bibi09 
Questions & Réponses Comment dupliquer une face autour d'un axe? 1 45 26/05 19:05:12
moonboots 
Python & Plugins Comment renommer "Key" ? (le chef des shapekeys)    [1][2] 14 314 26/05 17:58:54
Rimpotche 
Questions & Réponses Comment faire une boucle infinie (animation) 9 121 26/05 13:00:46
3dlone 
Moteur de jeu GameBlender et alternatives hARMful engine    [1][2][3]...[7] 64 6058 26/05 01:54:45
Bibi09 
Moteur de jeu GameBlender et alternatives [WIP] Jeu "Iron Man Collapsing"    [1][2][3] 27 8762 26/05 01:39:39
Bibi09 
Questions & Réponses [non résolu] Problème d'importation de svg 4 166 25/05 22:07:43
Joknox 
Questions & Réponses Disparition des Mesh.. 2 59 25/05 19:09:09
Loan20 
Questions & Réponses Animation NLA probleme origine 8 143 25/05 16:45:50
prometheusx 
Questions & Réponses alleger le poid de mon modele 5 91 25/05 16:39:51
Rimpotche 
Questions & Réponses Ajouter un raccourcis a un addon. 0 44 25/05 13:35:40
pierre-y 
Python & Plugins Pouvoir choisir l'outil actif avec python 1 77 25/05 13:20:16
pierre-y 
Questions & Réponses Exporter en FBX sur un ordi Japonais 1 130 25/05 13:01:33
tsurubaso 
Mes premières images sous Blender (débutants) Kame-House    [1][2] 15 559 25/05 08:17:56
Huildecoude 
Questions & Réponses transparence image as plane 3 140 24/05 21:48:30
ansic 

Qui est en ligne
81 utilisateur(s) en ligne (dont 18 sur Forums)

Membre(s): 0
Invité(s): 81


plus...
Nouveaux membres
StephanieP 28/5/2020
HalleyMidg 28/5/2020
BMNEnrique 28/5/2020
StellaH958 28/5/2020
JIOTiffiny 28/5/2020
WilliamsBa 28/5/2020
EugenioWar 28/5/2020
Williams42 28/5/2020
ReginaldBo 28/5/2020
ChangGulle 28/5/2020
Dernier Ajout
mirages-preview~0.jpg

Evènements à venir
Jui 30
Anniv des Jedi :-D
Jui 11
BUG de Lyon
Jui 23
Anniv du BlenderClan !
plus 270 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2020 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445