Flot optique

Résolu
soumagh Messages postés 9 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 29 février 2008 - 16 oct. 2007 à 10:16
The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 - 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

12 réponses

The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
16 oct. 2007 à 12:20
Bonjour,

L'algorithme est décrit ici : http://en.wikipedia.org/wiki/Horn_Schunck_method
=
Une autruche ne se cuit pas aux petits lardons
3
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
16 oct. 2007 à 14:02
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...
0
The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
16 oct. 2007 à 14:45
Oui c'est du chaud:p 
Du PHYSICIAN 
 bon courage:p

Une autruche ne se cuit pas aux petits lardons
0
soumagh Messages postés 9 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 29 février 2008
16 oct. 2007 à 15:15
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
16 oct. 2007 à 15:27
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
0
soumagh Messages postés 9 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 29 février 2008
16 oct. 2007 à 15:38
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
0
soumagh Messages postés 9 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 29 février 2008
16 oct. 2007 à 16:22
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
0
The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
16 oct. 2007 à 17:18
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
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
16 oct. 2007 à 18:04
Sympa l'explication...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
16 oct. 2007 à 18:50
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
0
soumagh Messages postés 9 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 29 février 2008
16 oct. 2007 à 21:11
merci beaucoup pour l'explication
si j'aurai d'autres questions je peux compter sur vous?
0
The_Guardian Messages postés 317 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 19 octobre 2007 1
16 oct. 2007 à 21:18
Oui, dans les limites de mes connaissances, je vous aiderais volontiers.

=

Une autruche ne se cuit pas aux petits lardons
0
Rejoignez-nous