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 :

Fermeture des contours


Sujet :

Traitement d'images

  1. #1
    Membre régulier Avatar de bahiatoon
    Inscrit en
    Juillet 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2006
    Messages : 169
    Points : 74
    Points
    74
    Par défaut Fermeture des contours
    Salut à tous,
    Je suis à la recherche d’un algorithme de fermeture des contours si vous en connaissez un n’hésitez pas à me laisser un message

  2. #2
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    salut,
    fermeture des contours = ?
    si tu cherche une lib de traitement d'image, il y a opencv (c, wrappé en python)

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  3. #3
    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 : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    si ton contour n'a pas de très gros "trous", il y a la morpho math qui fonctionne tres bien.

    Si tu n'as que des morceaux de contours, tu peux essayer de faire passer une droite par plusieurs morceaux consécitifs de ton contours. Mais c'est pas gagné...
    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.

  4. #4
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Salut,

    la fermeture des contours utilise un gradient d'image (prewit, sobel, deriche, ...).

    Tu sélectionnes les maximas locaux dans l'image de la norme du gradient via un seuil haut. Puis tu propages ces maximas vers d'autres points en utilisant la normale au gradient (qui nécessite l'image de directions du gradient). La propagation se fait le long de la normale au gradient pour chaque point.

    On peut choisir d'arreter cette propagation lorsque la norme du dernier point est inférieure à un seuil bas (technique du seuillage par hysteresis).

    En gros c'est ça.

    Flo.

  5. #5
    Membre régulier Avatar de bahiatoon
    Inscrit en
    Juillet 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2006
    Messages : 169
    Points : 74
    Points
    74
    Par défaut
    Salut,

    Merci pour vos réponses, mais je n’arrive toujours pas à fermer mes gros trous
    Pouvez vous donner plus d’explications

    A+

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    faudrait qu'on en sache plus sur ton problème..

    C'est une image ? des calculs ?

    Comment ils sont à l"heure actuelle tes contours ?

    un exemple ? un exemple de code ?
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  7. #7
    Membre régulier Avatar de bahiatoon
    Inscrit en
    Juillet 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2006
    Messages : 169
    Points : 74
    Points
    74
    Par défaut
    Salut,
    Je m’explique :
    Je traite une image Bmp (en niveaux de gris), pour la détection des contours j’ai utilisé les opérateurs classiques (Robert, Prewitt, Sobel, Kirsh, Laplacien, Canny , par soustraction...)
    Le problème est le suivant : lorsque je binarise mon image ( par un simple seuil) des contours ouverts apparaissent

    A+

  8. #8
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Ben tu y est presque,

    mais un seuillage simple ne suffit pas, tous les contours n'ayant pas la même intensité. Il faut utiliser au moins un seuillage par hysteresis.

    Ce seuillage (renseigne-toi si tu ne le connais pas) te permet de définir des "seeds" (des germes) puis de les étendre aux pixels voisins jusqu'à atteinte d'une contrainte (pixel voisin trop sombre, par exemple, ou encore nombre de pixels agglomérés trop important, etc.).

    Déjà avec un "banal" seuillage par hysteresis tu obtiendras mieux. Cependant, tu n'obtiendras pas l'unicité des contours. De même, ils ne seront pas encore complètement fermés.

    La solution reste dans l'utilisation d'un seuillage par hysteresis mais adapté à la fermeture des contours. Cette solution nécessite, en plus de la norme du gradient, pour chaque pixel, la direction de ce même gradient. Donc tu recherches les "seeds" grâce au seuil haut dans l'image de la norme du gradient. Puis ensuite tu calcules, grâce à la direction de la normale au gradient en ce point, les 2 pixels par lesquels doit se propager le contour. Ne pas oublier que le gradient te donne, en chaque point de l'image, un vecteur dont la normale est tangente au contour. Donc le contour localement à un point "contour" peut être assimilé à la normale au gradient en ce point.

    Donc tu te propages ainsi jusqu'à ce qu'un pixel à agglomérer présente un critère d'arrêt.

    C'est pas plus compliqué.

    Ensuite il ya des améliorations pour introduire la notions de maximas locaux (car les "seeds" tel que je te les ai présentées n'en sont pas forcément). De même la propagation de ces maximas locaux doit se faire en introduisant la notion d'unicité des contours (la solution décrite ferme les contours mais ils ne seront pas uniques (d'épaisseur 1 pixel)).

    Flo.

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    moi les algos que j'ai utilisés étaient plutot pour des chiffres que des images, mais je ne vois pas en quoi ça ne marcherait pas, et c'est très rapide (le calcul du contour contient en tant que tel la fermeture).

    Je m'explique :

    une image, c'est une matrice, dont les valeurs vont de 0 à 255, et donc (même si entre 2 pixels la différence est brutale) représente une quantité continue...

    Il y a un très joli algo. disponible (CONREC par Paul D. Bourke) qui explicites le calcul de contour dans un triangle. (voir Google)

    Chaque cellule de la matrice peut être découpée en 2 ou 4 triangles (4 est le mieux pour la symétrie).

    Et là chaque contour se compose, à la fin du passage à travers la matrice, d'une série de segments. Cependant, grâce à la manière de calculer, il est très facile de relier les segments entre eux (la plupart du temps la fin d'un segment est égale au début d'un autre).

    L'avantage énorme est :

    facilité de compréhension du calcul (maths de seconde)
    on ne passe qu'une fois dans la matrice
    facile de joindre les segments

    Enfin c'est ce qu'en dit...
    C'est sans doute moins glorieux que de beaux algos de traitements d'image.. Mais c'est joli et simple...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  10. #10
    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 : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonsoir,

    les gros trous sont un souci...

    Est ce que tu as essayé l'enveloppe convexe ???
    C'est droit, mais simple.
    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.

  11. #11
    Membre régulier Avatar de bahiatoon
    Inscrit en
    Juillet 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2006
    Messages : 169
    Points : 74
    Points
    74
    Par défaut
    Bonsoir,

    Non, je ne l’ai pas utilisée . Peux tu m’expliquer le principe STP.

    à bientôt;

  12. #12
    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 : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    l'enveloppe convexe : c'est comme si tu entouré une corde autour de ta forme. Tu obtiens une enveloppe qui représente un ensemble convexe (pour tous couple de points A,B de l'ensemble, le segment [A,B] est totalement inclu dans la forme.
    Regarde sur wikipédia, il y a une bonne page.
    Si tu souhaites le programmer, je te conseille la marche de Graham (que tu trouves sur wikipédia). Tu tries les points O(n Log n) et ensuite l'algo est linéaire. C'est le meilleur pour la 2D.

    Bonne continuation.
    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.

  13. #13
    Membre régulier Avatar de bahiatoon
    Inscrit en
    Juillet 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2006
    Messages : 169
    Points : 74
    Points
    74
    Par défaut
    Salut,

    je pense que l'utilisation de l'enveloppe convexe ne m'aidera pas, car j'ai beaucoup de points inessentiels , j'aimerai bien vous montrer mon image mais je ne sais pas comment l'insérer dans le message, si vous avez une idée laissez moi un message

    A+

  14. #14
    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 : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    pour insérer une image ou un lien, tu as des boutons dans ta fenetre de rédaction de messages.

    Ensuite, il est bien évident que tu n'utilise pas l'enveloppe convexe sur l'image entière.
    => Il te faut séparer les différentes formes à fermer, puis tu applique l'enveloppe convexe sur chacune d'elles.

    Montre nous une image, ce sera simple. Si tu n'arrives pas à insérer l'image, donnes nous un lien où la trouver.
    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.

  15. #15
    Nouveau Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Fermeture de contour
    Salut à tous,

    Je travaille sur des images PGM (en niveau de gris), le but c'est définir toute une chaine de traitement :

    1) éliminer les bruits de l'image s'ils existent bien sure ( image flou ou avec des grains), j'utilise le filtre de Shoc mais j'obtiens pas de résultat que je peux communiquer à l'étape suivante (detection)

    2) Detection de contour, j'utilise le filtre de Sobel, qui est trés performant !

    3) Seuillage, (simple puis double) sans problème !

    4) Fermeture de contour ????? je trouve pas un seul algorithme, ou code C qui peut m'aidé !!

    5)Etiquage ( j'ai pas encore touché )

    SVP, si vous disposez d'un code C qui me permet de fermer mes contours après le seuillage, je vous serez très reconnaissant !!

  16. #16
    Membre régulier Avatar de bahiatoon
    Inscrit en
    Juillet 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2006
    Messages : 169
    Points : 74
    Points
    74
    Par défaut
    Salut à tous ,
    je n'ai toujours pas résolu le problème ,et il me reste peu de temps pour rendre mes résultats

    Vous allez trouvez ci-joint l'image initiale(1) ainsi que l'image traitée(2) SVP si vous avez une idée sur la fermeture des trous laissez moi un message
    Images attachées Images attachées   

  17. #17
    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 : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    je pense encore que la solution que je t'ai proposé fonctionne correctement.

    - Tu segmentes tes objets et tu les isoles dans des images différentes.
    - Tu calcules l'enveloppe convexe de chacun avec la marche de Graham (c'est le plus rapide en 2D aussi bien en temps d'implémentation qu'en complexité).
    - Tu recomposes ton image.
    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.

  18. #18
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Salut,

    voilà le résultat obtenu avec l'extraction des contours via un Deriche suivant l'algorithme que je t'avais détaillé ...



    A noter que la profondeur des détails dépend du paramétrage et du pré-traitement effectué avant extraction des contours (un filtre médian et une égalisation d'histogramme dans mon cas). A mon avis, cette image aurait besoin d'un filtrage plus efficace.

    A noter enfin qu'on parle d'algo de fermeture des contours et non pas de fermeture de trous (qui est un autre type d'algos).

    Flo.

  19. #19
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut
    Deja c'est pas facile de seuiller ton image.

    Ce que j'ai fait pour commencer j'ai soustrait 50 a tout les pixels (la valeur est a améliorer). Ainsi le seuillage est deja plus intuitifs. Voyais plutot la premiere image, et j'ai pas forcé, ni fait autre traitement que la soustraction et le seuillage a une valeur de 238 il me semble.

    A partir de la il y a peut etre moyen d'arranger les choses. Un bon vieux traitement de morpho de base et c'est clean. Tu peux faire ta detection de contour.

    j'ai fait un traitement vite fait, je sais pas terrible, mais apres quelque ouverture erosion ou dilatation, suisvi d'un find edge sous imageJ (j'utilise ce soft pour trouver des algos) voila ce que j'obtiens en image 2
    Au lieu du findEdge fait un traitement de sobel tout bete.

    Bon j'ai remarqué que c'étaient des images de coronarographie (d'ailleur j'ai l'impression qu'il a besoin d'un pontage ou d'un coup de fraise dans la tuyauterie) En général on obtiens ce genre d'image sous un canon a rayon X, et le cardiologue regarde ca en direct. Est ce que c'est des images fixes qu'il faut que tu traites? ou est ce que tu a toute une sequence?


    J'imagine que tu veux extraire les Coronaires?
    Cordialement.
    Images attachées Images attachées   
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  20. #20
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    à parp1 ....
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Problème de Fermeture des contours en Canny
    Par SMI66 dans le forum Traitement d'images
    Réponses: 12
    Dernier message: 23/07/2012, 23h33
  2. fermeture des contours d'une image
    Par trfab dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 22/01/2012, 16h36
  3. Fermeture des contours, remplir les jonctions
    Par nawraz dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 25/02/2010, 18h31
  4. [Débutant] commande de fermeture des contours
    Par Minouchka dans le forum Images
    Réponses: 4
    Dernier message: 01/08/2009, 11h07
  5. Fermeture des contours
    Par sanadah dans le forum Images
    Réponses: 6
    Dernier message: 12/05/2009, 20h04

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