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 :

Binarisation d'image pour détection de formes


Sujet :

Traitement d'images

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 86
    Points : 35
    Points
    35
    Par défaut Binarisation d'image pour détection de formes
    Bonjour, je travaille sur des images de cellules qui fluorescent (s'illumine). Je dois tenter de détecter et labéliser tous points lumineux (cellules). Je code en utilisant les objets imageJ, donc pour tenter de détecter, je fais une binarisation de l'image et ensuite une détection de particule (objet imageJ), sauf que la binarisation pose problème car les intensités de gris de l'image ne sont pas uniforme :


    Donc quand je binarise cette image, j'obtiens quelquechose comme ça :



    Avez vous une idée de comment détecter les points lumineux et non pas la grosse forme plus lumineuse que le reste de l'image?
    Merci

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Sans binariser l'image peut-être ?
    Si ton but est de trouver les sommets les plus lumineux dans l'image, un algo de montée de gradient peut être une solution.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 86
    Points : 35
    Points
    35
    Par défaut
    oui, possible, mais je connais pas grand chose à tous ça..j'ai fait que 6 mois d'info et à peu près rien sur l'image....peux tu me donner des pistes stp?

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut
    Salut. Binarisé avec ImageJ c'est bien mais pas optimale. Moi personelement je seuil.
    Quel est la difference???
    Avec binary Threshhold: il extrait tout les pixels au dessus de 128.C'est a dire que prend la valeur min la valeur max et il coupe la poire en deux.

    Alors que si tu fait image adjust threshhold la tu peut appliquer un double seuillage. par exemple si les pixels compris entre 240 et 253 t(interresse tu les extrait facilement alors qu'avec binary Threshhold il fesait partit du meme objet.

    Je ne sais pas si deja tu faisait comme ca. A toi de voir si c'est mieux.
    A plus

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 86
    Points : 35
    Points
    35
    Par défaut
    Meme avec adjust threshold, c'est tres tres loin d'etre satisfaisant...Mais merci quand meme pour l'idée....

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Tu prends chaque point de l'image et tu cherches le sommet le plus proche. En fait, pour chaque point, tu lui indiques le point dans le voisinage le plus haut, puis tu itères.

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut
    J'ai reussi a voir un resultat de ce genre. Est ce que ca serait suffisant?
    Images attachées Images attachées  

  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
    Salut, à la va-vite :

    - tu fais un gros flou que tu soustrais à l'image originale (DOG ou DOB).
    - tu seuilles le résultat

    result = seuillage( source - flou(source), seuil)

    Exemple avec un flou 16x16 moyenneur et un seuillage à 15 :

    Nom : tests.JPG
Affichages : 843
Taille : 7,2 Ko

    Exemple avec un flou 16x16 moyenneur et un seuillage à 5 :

    Nom : tests0.JPG
Affichages : 818
Taille : 14,6 Ko

    A noter que la taille du flou doit dépendre de la taille des cellules. Un flou gaussien donnerait surement de meilleurs résultats.

    A+

    Flo.

    Edit0 : j'ai pas géré le bord (de 8 pixels non exploitable à cause du filtre 16x16) : il faudrait donc le mettre à 0 pour faire plus propre.

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

    la méthode de Flo semble excellente.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 86
    Points : 35
    Points
    35
    Par défaut
    Je crois que tu m'as admirablement bien répondu à ma question, c'est exactement ce que je voulais!
    Je te remercie beaucoup

  11. #11
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 86
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Flo.
    Salut, à la va-vite :

    - tu fais un gros flou que tu soustrais à l'image originale (DOG ou DOB).
    - tu seuilles le résultat

    result = seuillage( source - flou(source), seuil)

    Exemple avec un flou 16x16 moyenneur et un seuillage à 15 :

    Nom : tests.JPG
Affichages : 843
Taille : 7,2 Ko

    Exemple avec un flou 16x16 moyenneur et un seuillage à 5 :

    Nom : tests0.JPG
Affichages : 818
Taille : 14,6 Ko

    A noter que la taille du flou doit dépendre de la taille des cellules. Un flou gaussien donnerait surement de meilleurs résultats.

    A+

    Flo.

    Edit0 : j'ai pas géré le bord (de 8 pixels non exploitable à cause du filtre 16x16) : il faudrait donc le mettre à 0 pour faire plus propre.
    Une toute petite question, quand tu parles d'un flou 16x16, pour les masque gaussien par exemple, faut pas que ce soit des nombres impairs?
    3x3, 5x5, 7x7 etc...?

  12. #12
    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
    Si ouais ...

    C'est parce que c'est une optimisation en xmmx ... et au lieu de mettre 17 ou 15, j'ai mis 16 parce que ça correspond au nombre de bytes que tu peux caser dans un registre xmmx .... Enfin bref c'est pas grave.

    Bien entendu un nombre impair c'est mieux .

    De toute façon que tu prennes 17x17=289 ou 16x16=256 pixels ça vas pas changer des masses le résultat ... et la di-symmétrie sera vraiment négligeable.

    Mais t'as raison, impair c'est mieux.

    Flo.

  13. #13
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 86
    Points : 35
    Points
    35
    Par défaut
    Merci à toi Flo!
    Nickel tes explications!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/05/2012, 22h19
  2. Réponses: 5
    Dernier message: 28/10/2009, 14h53
  3. Seuillage pour binarisation d'image
    Par zolotaya dans le forum Traitement d'images
    Réponses: 26
    Dernier message: 10/05/2007, 14h35
  4. Réponses: 4
    Dernier message: 03/02/2007, 17h18
  5. [Image] Algorithme pour déterminer une forme continue
    Par wizzmasta dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 25/04/2006, 15h56

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