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 :

repérage cercle. ALGO CANNY


Sujet :

Traitement d'images

  1. #1
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut repérage cercle. ALGO CANNY
    Salut à tous.
    Je fait du traitement d'image, et j'aimerai savoir si certains d'entre vous connaissent une bonne explication à propos du principe de Hought ou assimilé (pour repérer un cercle sur une image).

    Merci d'avance, Skip

  2. #2
    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

    Citation Envoyé par skip78
    Je fait du traitement d'image, et j'aimerai savoir si certains d'entre vous connaissent une bonne explication à propos du principe de Hought ou assimilé (pour repérer un cercle sur une image).
    oui, je connais pour l'avoir déjà fais.


    Si tu fais un peu de bibliographie sur le net (google est ton ami ), on te dira que la transformée de hough opère un changement de dimension.

    En ce qui concerne le problème du cercle sur des images :
    - Tu choisis trois points aléatoirements.
    - Tu calcules le centre du cercle passant par ces trois points (sauf si ils sont colinéaires).
    - Tu sauvegarde ce centre quelque part.
    - Tu réhitères ces opération un bon nombre de fois.
    - Le centre du cercle cherché est le résultat obtenu le plus grand nombre de fois.
    - Si tu as plusieurs cercles, tu prends les résultats apparaissant le plus.

    Voilà...

    bon courage...

  3. #3
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par ToTo13
    Si tu fais un peu de bibliographie sur le net (google est ton ami ), on te dira que la transformée de hough opère un changement de dimension.
    Justement c'est pour ca que je commencais à m'inquieter Moi le changement de dimension ne m'interesse pas du tout

    Citation Envoyé par ToTo13
    - Le centre du cercle cherché est le résultat obtenu le plus grand nombre de fois.
    Oula tu as du sauter une étape là
    Parce que moi j'ai une image, rectangulaire, et il y a un cercle quelque part dessus, mais pas forcement centré. Je vois pas en quoi l'algo dont tu parles peut, quoi qu'il en soir, donner le cercle recherché sans jamais regarder l'image

    Pour l'algo que je recherche j'avais entendu dire qu'il prenait un cercle et qu'il le deplacait sur l'image jusqu'à l'avoir obtenu un truc du genre. Cela étant dit je ne peut pas travailler sur les couleurs, qui sont trop proches les unes des autres sur les images à traiter

    Si vous avez une idée n'hésitez pas svp j'ai vraiment besoin de cette info merci

  4. #4
    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,

    Citation Envoyé par skip78
    Moi le changement de dimension ne m'interesse pas du tout
    c'est le principe même de la transformé de Hough, mais en réalité, si tu fais ce que je t'ai dit, c'est transparent.


    Citation Envoyé par skip78
    Oula tu as du sauter une étape là
    Parce que moi j'ai une image, rectangulaire, et il y a un cercle quelque part dessus, mais pas forcement centré.
    Ca marche très bien, comme ej te l'ai déjà dit, je l'ai programmé...

    Quand j'ai marqué que tu prenais des séries de trois points, je voulais dire trois points de l'image.

    Citation Envoyé par skip78
    Pour l'algo que je recherche j'avais entendu dire qu'il prenait un cercle et qu'il le deplacait sur l'image jusqu'à l'avoir obtenu un truc du genre. Cela étant dit je ne peut pas travailler sur les couleurs, qui sont trop proches les unes des autres sur les images à traiter
    Ca c'est pas très beau et surtout beaucoup plus lent et complexe.


    Je peux te garantir que c'est parmis les méthodes les plus simples et les plus rapide pour retrouver un ou plusieurs cercles dans une image.

  5. #5
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Bah je veut bien te croire mais je n'arrive pas à comprendre !

    Pour récapituler, j'ai un cercle sur mon image, je prend 3 points aléatoirement sur mon image, je trace le cercle passant par ces 3 points et j'en stock le centre. En réitérant l'opération moultes fois, je suis confus mais le centre que tu obtiendras n'à absolument aucune raison de se situer là ou est centré le cercle que tu recherche !?!? Je dirais que tu obtiendras le centre de l'image

    Enfin si tu as une preuve à l'appui je suis preneur mais si ca marche comme ca la logique atteint ses bornes là

  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 : 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,

    petites précisions :
    - qu'y a t'il d'autre que le cercle sur ton image ?
    - Est elle fortement bruitée ?
    - le cercle aura t'il une couleur prédéfinie ?
    - Est ce une image binaire ???

  7. #7
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Pout tout te dire il s'agit d'une image radar, donc il y a beaucoup de dechets autour. Cependant le cercle reste parfaitement visible et se detache bien du reste de l'image. Il est blanc d'ailleurs. Mais d'autres points blancs existent sur l'image par conséquent je ne peut pas passer par la méthode du snake.

    Bruitée je sais pas ce que c'est et elle n'est pas binaire mais je pense qu'il faudrait la binariser en effet. J'avais réalisé quelques test pas trés fructueux :S

  8. #8
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Commences par détecter les contours.
    A partir de là, la méthode décrite fonctionne très bien !
    J'avais utilisé cet article à l'époque :
    http://www.vieartificielle.com/article/index.php?id=188

    C'est assez simple finalement .
    Edit: tu ne sais pas ce qu'est une image bruitée, mais tu connais les snakes, Hough et consorts ?
    Pas logique du tout ça

  9. #9
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Mdr à vrai dire mon problème était bien de trouver les contours Une fois que j'ai les contours j'ai le cercle puisque mon cercle est le seul truc present sur mon image

    Enfin merci pour le lien je vais regarder ce qu'est Canny

    P.S. oui je connais les snakes parce que j'en ai codés mais je ne connais pas du tout les termes 'scientifiques'. En fait mon prof d'info m'à expliqué le principe, j'ai créé mon propre algo et Bim ca marche Donc non aucune idée

    Edit : je ne trouve aucune explication concrete sur Canny. A part Wikipedia mais je comprends rien il me parle de filtres mais je ne sais pas comment utiliser la matrice donnée. Thxs for help, Skip

  10. #10
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Pff ca à vraiment l'air compliqué ce truc
    Vraiment si quelqun s'y connait un peu je veut bien qu'il m'explique le principe parce que là je patauge joyeusement

  11. #11
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    On utilise la matrice en faisant une convolution.
    Il y a beaucoup de liens, rien qu'avec google.
    On multiplie l'image par cette matrice (en gros) et on obtient les contours.
    http://docs.gimp.org/fr/plug-in-convmatrix.html
    http://xmcvs.free.fr/astroart/Chapitre4.pdf

    Avec ça, si tu n'as pas compris

  12. #12
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par progfou
    On utilise la matrice en faisant une convolution.
    Il y a beaucoup de liens, rien qu'avec google.
    On multiplie l'image par cette matrice (en gros) et on obtient les contours.
    http://docs.gimp.org/fr/plug-in-convmatrix.html
    http://xmcvs.free.fr/astroart/Chapitre4.pdf

    Avec ça, si tu n'as pas compris
    Merci beaucoup C'est trés simple en fait ^^
    Par contre ils se servent de l'intensité du pixel eux pas de la couleur Je vais essayer de voir comment faire merci en tout cas

  13. #13
    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 tu as codé les snakes, j'aimerai bien en avoir une version... please...

  14. #14
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Ouais bon bah je coince à propos de l'intensité comment fait on pour connaitre l'intensité d'un pixel? La seule fonction que j'ai c'est pour avoir sa couleur ...

  15. #15
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par ToTo13
    Bonjour,

    si tu as codé les snakes, j'aimerai bien en avoir une version... please...
    Désolé j'ai pas le droit pour l'instant, pour cause de confidentialité. Mais je te filerait ca dès que possible

  16. #16
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    L'intensité d'un pixel c'est la luminance (enfin, je simplifie, mais c'est l'idée).
    Il existe plusieurs formules, mais la plus répandue est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Y = 0,299 R + 0,587 G + 0,114 B
    A partir de là, tu auras l'image en niveaux de gris.

  17. #17
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Merci

  18. #18
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Bon bah en fait je coince à nouveau
    Comment tu fait concretement, pour effectuer ton changement ? (je developpe sous Allegro)

  19. #19
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    J'avoue ne pas saisr ta question...
    Tu travailles en C ou C++ ?
    Allegro je ne connais que de nom.

    La luminance te donnera les niveaux de gris.
    Tu prends chaque pixel, tu prends les valeurs R, G et B de ceux-ci, tu appliques la formule, et tu ressors un pixel avec une valeur comprise entre 0 et 255.
    C'est le niveau de gris correspondant.

  20. #20
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Bah quand je fais ca ca me donne des niveaux de bleu
    (je developpe en c)

    Ah j'ai peut etre une idée
    Je te dis aprés dejeuner ce que ca donne

Discussions similaires

  1. [D7] Algo de cercle anti-aliasé (Xiaolin Wu?)
    Par davidkungfu dans le forum Langage
    Réponses: 1
    Dernier message: 13/08/2009, 09h05
  2. algo pour calculer le milieu d'un arc de cercle
    Par isoman dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 20/06/2009, 18h30
  3. algo pour déterminer le plus petit cercle circonscrit d'un convexe quelconque
    Par [Hugo] dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 27/02/2008, 13h06
  4. Cherche l'algo crc 16 bits
    Par icepower dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 21/08/2002, 14h27
  5. Recherche algo tree
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 24/05/2002, 14h44

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