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

OpenCV Discussion :

Extraction de contours


Sujet :

OpenCV

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Par défaut Extraction de contours
    Salut

    Dans le cadre de mon projet, je dois pouvoir extraire les contours d'une image médicale de l'estomac.
    Canny me fournit tous les contours présents sur l'image mais il me faut maintenant trouver comment extraire de ceux-ci uniquement les contours de l'estomac.
    J'ai pensé à utilisé les snakes mais sous openCv je ne trouve pas dans le dossier "samples" une implémentation de cette méthode.

    Quelqu'un peut-il m'aider à trouver un code qui pourrait extraire les contours sur une image de l'estomac ou alors que l'on pourrait adapter à une image de l'estomac.

    Merci d'avance

  2. #2
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    la question est plutot à quoi ressemble les contours que tu veux tracker, n'étant pas médecin et n'ayant jamais vu ce genre d'image je n'ai aucune idée de ce à quoi cela ressemble ? mets un petit screen si possible.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Par défaut
    voici, sur le doc word en pièce jointe une image médicale de l'estomac et c'est une image pareille que je doit extraire les contours.

    Merci
    Fichiers attachés Fichiers attachés

  4. #4
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2009
    Messages : 141
    Par défaut
    Ici c'est pas vraiment du tracking vu qu'on est sur une image statique mais plutot de la segmentation. Pour arriver a ton but il faudrait avoir des constantes. Par exemple un intervalle de couleur qui identifie l'estomac, des points remarquables...
    Parce que faire une segmentation sans aucune info en entree c'est impossible.
    Cherche dans ce sens la : Quesqu'y represente un estomac et uniquement un estomac?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Par défaut
    Pour compléter glen1789 ou plutôt rendre plus pratique ses conseils...

    Pour séparer l'estomac du reste de l'image, tu peux :
    * créer une base de données avec plein d'images d'estomacs
    * indiquer pour chaque pixel s'il appartient à l'estomac ou non
    * faire un histogramme tel que pour chaque couleur tu associes le nombre de pixel de cette couleur appartenant à l'estomac
    * faire un autre histogramme tel que pour chaque couleur tu associes le nombre de pixel de cette couleur n'appartenant pas à l'estomac
    * faire des fonctions te renvoyant la probabilité pour un pixel compte tenu de sa couleur, probabilité qu'il soit dans l'estomac, probabilité qu'il ne soit pas
    * trouver un seuil (empiriquement) tel qu'au-dessus de ce seuil tu es le plus de pixels d'estomac reconnu tout en minimisant le nombre de pixels n'appartenant pas à l'estomac reconnu

    Et voilà, tu disposes d'une image binarisée sur laquelle tu peux maintenant travailler sérieusement !

    Ensuite, si tu as plusieurs composantes connexes reconnues, tu peux essayer de déterminer laquelle est l'estomac en testant sur quelques particularités géométriques... variations des pentes sur le contour, alternance successive de courbure positive, négative..., etc

    le contour tu l'obtiens avec un gradient (dans opencv) MAIS ENCORE MIEUX à l'aide de cvFindContours !

    Si tu as plusieurs composantes connexes dans ton image binarisée, elle te renverra autant de contours que de composantes. Ensuite pour trouver la bonne, utilise la colorimétrie dans l'image de départ, et les considérations géométriques dans la binarisée.

    Bon courage !

  6. #6
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Citation Envoyé par Gautier_mic Voir le message
    * créer une base de données avec plein d'images d'estomacs
    * indiquer pour chaque pixel s'il appartient à l'estomac ou non
    * faire un histogramme tel que pour chaque couleur tu associes le nombre de pixel de cette couleur appartenant à l'estomac
    * faire un autre histogramme tel que pour chaque couleur tu associes le nombre de pixel de cette couleur n'appartenant pas à l'estomac
    * faire des fonctions te renvoyant la probabilité pour un pixel compte tenu de sa couleur, probabilité qu'il soit dans l'estomac, probabilité qu'il ne soit pas
    * trouver un seuil (empiriquement) tel qu'au-dessus de ce seuil tu es le plus de pixels d'estomac reconnu tout en minimisant le nombre de pixels n'appartenant pas à l'estomac reconnu
    C'est extrêmement LONG, ça nécessite un travail monstrueux pour créer une base de données convenable et ça ne marchera sans doute pas en niveaux de gris :-(
    Il suffit de regarder la masse floconeuse en bas de l'image, qui sera inévitablement détectée comme faisant parti de l'estomac.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  7. #7
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    meuh non c'est pas si long le xml mets environ 3 ou 4 jours à se générer XD, méthode à éviter je pense, Glen a soulevé la problématique. Il faut differencier l'estomac du reste, un petit travail sur un histogramme et la taille de la region, sur l'image c'est l'estomac qui est le plus grand et la teinte est differente du reste de l'image.

Discussions similaires

  1. Extraction des contours internes
    Par sabrina6 dans le forum OpenCV
    Réponses: 1
    Dernier message: 30/04/2010, 14h32
  2. Extraction des contours en utilisant un histogramme du seuillage
    Par latsou dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 26/11/2009, 16h16
  3. extraction de contour
    Par AlphaJ dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 24/01/2008, 16h30
  4. algo de chainage pour extraction de contours
    Par felben dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 20/04/2006, 17h06

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