Flot optique [Résolu]

soumagh 9 Messages postés vendredi 7 septembre 2007Date d'inscription 29 février 2008 Dernière intervention - 16 oct. 2007 à 10:16 - Dernière réponse : The_Guardian 318 Messages postés vendredi 25 mai 2007Date d'inscription 19 octobre 2007 Dernière intervention
- 16 oct. 2007 à 21:18
bonjour


j'ai un problème : je dois implémenter un algorithme de flot optique


mais seulement j'ai pas pu trouver un algorithme pouvez vous me diriger vers un référentiel ou un code source en langage C


merci d'avance
Afficher la suite 

12 réponses

Répondre au sujet
The_Guardian 318 Messages postés vendredi 25 mai 2007Date d'inscription 19 octobre 2007 Dernière intervention - 16 oct. 2007 à 12:20
+3
Utile
Bonjour,

L'algorithme est décrit ici : http://en.wikipedia.org/wiki/Horn_Schunck_method
=
Une autruche ne se cuit pas aux petits lardons
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de The_Guardian
BunoCS 13764 Messages postés lundi 11 juillet 2005Date d'inscription 20 avril 2018 Dernière intervention - 16 oct. 2007 à 14:02
0
Utile
Houlà...
Même en Français, j'ai pas compris le principe
Très peu pour moi, donc...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
The_Guardian 318 Messages postés vendredi 25 mai 2007Date d'inscription 19 octobre 2007 Dernière intervention - 16 oct. 2007 à 14:45
0
Utile
Oui c'est du chaud:p 
Du PHYSICIAN 
 bon courage:p

Une autruche ne se cuit pas aux petits lardons
Commenter la réponse de The_Guardian
soumagh 9 Messages postés vendredi 7 septembre 2007Date d'inscription 29 février 2008 Dernière intervention - 16 oct. 2007 à 15:15
0
Utile
j'ai pas bien compris l'algorithme depuis hier je lit et je relit j'ai pas pu déduire un algorithme

s'il vous plaît si quelqu'un peut m'aider
j'attends vos réponses

bonne journée
Commenter la réponse de soumagh
The_Guardian 318 Messages postés vendredi 25 mai 2007Date d'inscription 19 octobre 2007 Dernière intervention - 16 oct. 2007 à 15:27
0
Utile
Re, 

 Je veux bien t'expliquer l'algo qui est sur la page de wikipedia, mais est-ce bien l'algo qu'il te faut ? car tu devrais pouvoir le comprendre si c'était le cas, et du coup ça m'inquiète un peu..
_ peux-tu expliquer ce que tu entends par algorithme de flot optique, en quelques mots
_ Ce que tu cherches à vraiment faire ?
_ comment tu vois ça

=

Une autruche ne se cuit pas aux petits lardons
Commenter la réponse de The_Guardian
soumagh 9 Messages postés vendredi 7 septembre 2007Date d'inscription 29 février 2008 Dernière intervention - 16 oct. 2007 à 15:38
0
Utile
je dois implémenter un code pour la détection de mouvement d'un objet
j'ai compris de quoi il s'agit pour le flot optique je sais les notions théoriques mais pour l'algorithme formelle (les initialisations...)que je me pannique
c'est la première fois que je developpe un programme de traitement d'image
je ne sais pas comment j'initialise E(x,y,t):comment la trouver à partir d'une image en langage C
Commenter la réponse de soumagh
soumagh 9 Messages postés vendredi 7 septembre 2007Date d'inscription 29 février 2008 Dernière intervention - 16 oct. 2007 à 16:22
0
Utile
s'il vous plaît expliquez moi un peu la démarche de l'algorithme sans les formules mathématiques en spécifiant les inputs et output
s'il vous plaît pourqu'oi chaque étape décrite par Horn et Schunk?

je sais que je peux traduire l'algorithme bêtement mais ce n'est pas mon attitude de travailler
je vous prie de m'orienter un peu afin de bien comprendre  mes tâches à implémenter.
merci
Commenter la réponse de soumagh
The_Guardian 318 Messages postés vendredi 25 mai 2007Date d'inscription 19 octobre 2007 Dernière intervention - 16 oct. 2007 à 17:18
0
Utile
Re, 

 Tu as deux questions apparemment:
question 1 : comment initialiser la matrice E(x, y, t)
question 2 : comment marche l'algorithme H&S ?

Alors déjà la question 1
_ tu peux pas initialiser ta matrice E(x, y, t) avec une seule image
- chaque image correspond à un t différent
- le plus simple c'est de supposer que tes images sont codées directement comme une matrice (x, y)
- donc par exemple une image 30x10 occuperait exactement 300 octets
- donc tu lirais le premier octet et tu le mets dans E(0, 0, 0)
- le deuxième octet du fichier irait dans E(1, 0, 0)
-  le 30ème octet du fichier dans E(29, 0, 0)
-  le 31ème dans E(0, 1, 0)
etc
Et le dernier finalement va dans E(29, 9, 0)
- ensuite tu fais pareil pour l'image suivante
- voilà pour l'initialisation de E(x, y, t)
-  par contre va pas dans la lecture de fichiers JPG/GIF, trop compliqué

---

Pour la seconde question, là ça va être plus technique:
_ la description de l'algorithme c'est un algorithme itératif
-  ça veut dire quoi ? que tu calcules tout pour k=0
-  et ensuite une fois que c'est fait
- tu te sers des valeurs en k pour trouver en k+1
 etc
Et on va appeler ça la grosse boucle
- la grosse boucle elle itère sur k
- bon, qu'est-ce qui se passe à l'intérieur de cette grosse boucle ?
- si tu regardes sur wikipedia, à l'endroit où il y a marqué : "An alternative algorithmic..."
- tu vois que V(x, k+1) = ...
- et on voit que ce qui est à droite ne dépend que de "k"
- donc pour calculer V(x, k+1) il faut savoir ce que c'est que :
- V(x, k) avec la barre
etc
En gros, tout est expliqué en dessous, et comme tu veux pas rentrer dans les détails des formules, je vais pas aller plus loin dans la description, mais voila en gros ce que ça fait que cette formule:

elle calcule un vecteur V (le flot optique) selon x, y et z

(toi dans ton cas tu as une suite d'images, donc tu as besoin que de x et y)
_  la formule correspond à la solution d'un système
- un peu compliqué le système d'ailleurs, pas de mon niveau, mais bon c'est pas génant, car  faut juste avoir les solutions, et c'est ce qu'on a.
- en tant qu'informaticien, toi, il te faut la formule et savoir ce à quoi tout correspond 
(c'est pour ça que tout à l'heure j'étais partie dans la définition de toutes les variables)
- bon donc tu fais la formule

---
Alors aussi tu voulais les entrées et les sorties:
_ sorties : - le vecteur V
- c'est un vecteur de taille (x, y)
(il t'en faut plusieurs intermédiaires, autant que tu auras de "k")
_ entrées : - ta matrice E(x, y, t) et - un paramètre alpha
- de là, tu calcules I(x), I(y), I(z), I(t)
- puis les V(x, y, k) barre (ça se fait avec des moyennes de points consécutifs)
- et là tu as tout pour réussir
Okay ?
:p
bon courage.

=

Une autruche ne se cuit pas aux petits lardons
Commenter la réponse de The_Guardian
BunoCS 13764 Messages postés lundi 11 juillet 2005Date d'inscription 20 avril 2018 Dernière intervention - 16 oct. 2007 à 18:04
0
Utile
Sympa l'explication...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
The_Guardian 318 Messages postés vendredi 25 mai 2007Date d'inscription 19 octobre 2007 Dernière intervention - 16 oct. 2007 à 18:50
0
Utile
Bien en fait, c'est en expliquant l'algo que j'ai entrevue ce qu'il voulait faire, je me suis lachée un peu trop p-e bien.. 
 :p
=

Une autruche ne se cuit pas aux petits lardons
Commenter la réponse de The_Guardian
soumagh 9 Messages postés vendredi 7 septembre 2007Date d'inscription 29 février 2008 Dernière intervention - 16 oct. 2007 à 21:11
0
Utile
merci beaucoup pour l'explication
si j'aurai d'autres questions je peux compter sur vous?
Commenter la réponse de soumagh
The_Guardian 318 Messages postés vendredi 25 mai 2007Date d'inscription 19 octobre 2007 Dernière intervention - 16 oct. 2007 à 21:18
0
Utile
Oui, dans les limites de mes connaissances, je vous aiderais volontiers.

=

Une autruche ne se cuit pas aux petits lardons
Commenter la réponse de The_Guardian

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.