IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traitement d'images Discussion :

Méthode Level Set


Sujet :

Traitement d'images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2008
    Messages : 99
    Par défaut Méthode Level Set
    bonjour à Tous,
    Cela fait deux jours que je tourne en rond et je n'arrive pas à comprendre la méthode des level Set, j'ai lu pleins de Doc la dessus mais je comprend plus rien quand ca parle que l'on rajoute une nouvelle dimension.

    EN fait , j'ai déja fait une étude sur les méthodes contour actif ( les snakes) que j'ai bien compris mais la la méthode level set je suis perdu.

    Moi je voudrai savoir par exemple , j'ai une image 2D ou il y a deux cercles, comment ca se passe le level set , alors apparament il y a un niveau zéro que représente - il ? ensuite il faut mettre des 0 et -1 je ne sais ou et ensuite distance euclidienne.
    SVP si quelqu"un pouvait m'aider ca serai trés trés gentil , je mets beaucoup d'effort pour comprendre ce concept mais j'y n'arrive pas .

    Merci d'avance .

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    DISCLAMER: Attention, ce que je vais dire est totalement faux d'un point de vue strictement, fondamentalement et purement mathématique (topologie, géodésie, tout ca...). Donc inutile de m'insulter . C'est juste pour "aider" à la compréhension.

    Si on considère que l'image est un terrain en 3D (carte d'élévation), alors le snake est une courbe 3D fermée qui se déplace sur la surface 3D jusqu'a trouver un équilibre. Le terrain 3D ne bouge pas, ce sont les points du snake qui bougent dans les 3 dimensions (x,y,z).

    Pour le level-set c'est un peu le contraire. Les points du snake restent à l'altitude z=0 et ce sont les points du terrain dont on modifie l'altitude. Par effet de conséquence, les points du snake bougent aussi mais seulement sur (x,y) car leur z reste à 0.

    Par la magie des level-set, TOUS les points qui sont à l'altitude z=0 font partie du snake ! Cela peut donc créer des courbes complexes (fermées, ouvertes, multiples, croisées, ...).

    Est-ce plus clair ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2008
    Messages : 99
    Par défaut
    Oui c plus ou moins clair, j'ai vu pour segmenter une image 3D il faut ajouter une dimension donc ca serai 4 !!!!
    Donc notre cas , c'est une image 2D , donc on rajoute une coordonnés z pour notre modele deformable donc ,Le snake ne bouge pas au niveau du Z il reste à zero, seulement son (x,y) change, et comment peux se faire la segmentation d'un objet dans cette image 2D alors ? je vois pas trop comment on peut faire de la segmentation avec les level set, on me parle de distance euclidienne , oui mais une distance entre koi et koi ?
    parce que au final, on fait bouger le snake dans une scene en 3D mais l'objet a segmenter se trouve dans une image 2D ?
    Bizarre , franchement je dois énerver certains mais je vois pas de segmentation !

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par menakikou Voir le message
    Donc notre cas , c'est une image 2D , donc on rajoute une coordonnés z pour notre modele deformable donc ,Le snake ne bouge pas au niveau du Z il reste à zero, seulement son (x,y) change, et comment peux se faire la segmentation d'un objet dans cette image 2D alors ? je vois pas trop comment on peut faire de la segmentation avec les level set, on me parle de distance euclidienne , oui mais une distance entre koi et koi ?
    parce que au final, on fait bouger le snake dans une scene en 3D mais l'objet a segmenter se trouve dans une image 2D ?
    Bizarre , franchement je dois énerver certains mais je vois pas de segmentation !
    Les snake, comme les level-set, séparent (segmentent) une image en 2 parties:

    - Pour les snakes, il y a les points à l'intérieur de la courbe fermée, et les points à l'extérieur. La frontière est constituée des points qui sont sur la courbe.

    - Pour les level-set, il y a les points avec une altitude négative, et les points avec une altitude positive. La frontière est constituée des points qui sont à l'altitude 0.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre averti
    Inscrit en
    Février 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 12
    Par défaut
    bonjour,

    un peut d'explication sur cet méthode svp

    Méthode Level Set

    merci

  6. #6
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Par défaut Quelques détails supplémentaires
    Basiquement, la méthode des level sets permet de faire évoluer une courbe ou une surface fermée de manière quelconque (avec une vitesse "locale" quelconque). Mais au lieu de modéliser explicitement cette courbe/surface par un ensemble de points connectés (courbe) ou par un maillage 3d (surface), la méthode level set travaille sur une représentation "implicite" de ces objets.Cette représentation implicite consiste généralement en une fonction "distance" à la courbe/surface considérée.
    Par exemple, pour faire évoluer une courbe fermée par level sets, on va faire évoluer la fonction distance d(x,y) à cette courbe, définie comme une image 2D, plutôt que les points de la courbe elle-même. Pour chaque pixel (x,y), la valeur de l'image d(x,y) correspond tout bêtement à la distance euclidienne du point (x,y) à la courbe considérée.

    Pour récupérer explicitement les points de la courbe à un instant t de l'évolution, il suffit d'extraire les points (x,y) vérifiant d(x,y) = 0 (isophote 0 de la fonction distance). Cette conversion "implicite->explicite" se fait en général par une méthode de type 'marching squares' (pour une courbe) ou 'marching cubes' (pour une surface).

    Pourquoi s'embêter la vie avec ces fonctions implicites ? Parce que il est en réalité beaucoup plus facile de faire évoluer une fonction implicite, que de faire évoluer explicitement les points d'une courbe ou d'une surface, avec tous les problèmes que cela pose : changement de topologie, nécéssité de remaillage, etc..

    A noter que l'utilisation de la fonction distance comme fonction implicite de représentation de la courbe/surface n'est pas obligatoire. N'importe quelle représentation telle que la courbe soit l'isophote de valeur 0 peut-être utilisée. Néanmoins, la fonction distance a de bonne propriétés géométriques et son utilisation permet de convertir facilement la vitesse d'évolution de la courbe/surface d'une forme explicite à une forme implicite, et permet aussi de calculer aisément la courbure locale K de la courbe/surface, qui est une caractéristique qui apparait très souvent dans les termes de vitesse d'évolutions de courbes/surfaces (en segmentation notamment).

    D'un point de vue logiciel, beaucoup de bibliothèques implémentent la méthode des level sets. Pour ma part, je conseille fortement d'aller fouiller du côté de CImg, notamment avec les sources suivantes :

    http://cimg.cvs.sourceforge.net/view..._levelsets.cpp

    (évolution d'une courbe)

    et

    http://cimg.cvs.sourceforge.net/view...evelsets3d.cpp

    (évolution d'une surface)

    qui permet de bien comprendre comment ça marche (code court, visualisation de l'évolution possible).

    -- Cécile.--

Discussions similaires

  1. La méthode Level set
    Par meywey dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 04/04/2011, 07h03
  2. Méthode level set
    Par hk0006 dans le forum Général Java
    Réponses: 4
    Dernier message: 03/04/2009, 23h40
  3. la méthode level set
    Par hassiba_45 dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 13/04/2008, 12h33
  4. la méthode level set
    Par hassiba_45 dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 18/03/2008, 14h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo