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 :

Seuillage par entropie.


Sujet :

Traitement d'images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut Seuillage par entropie.
    Bonjour a tous.

    Je chercher a programmer le seuillage par entropie.J'ai une idée d'algo mais j'ai peur de mal interpreter la formule :

    Algorithme du calcul de l'entropie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    image =tableau //Tableau sous forme de matrice 2D
     
    imagelog=tableau
     
    temp=tableau
     
    imagelog=Log(image)
     
    temp=-(image+imagelog) 
     
    entropie=somme(temp.flat) // mise a plat de la matrice resultante puis calcul de la somme de tous ses elements.
    Est ce que mon raisonnement est bon?? Par quoi remplacer le log de zero pour un pixel noir???

    Bon si cela fonctionne comment doit calculer le seuil par rapport a mon entropie? J'ai entendu parler de maximalisation...?

    Merci
    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...

  2. #2
    Membre chevronné
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Par défaut
    Le seuillage entropique consiste à maximiser l'entropie, car l'entropie mesure la quantité d'information portée par un groupe.

    Donc ta première partie, ça c'est juste le calcul de l'entropie à une itération, et tu dois la recalculer à chaque itération pour que celle-ci soit maximale (via des algos dits d'optimisation)...

    A+

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     image =tableau //Tableau sous forme de matrice 2D
     
    imagelog=tableau
     
    temp=tableau
     
    imagelog=Log(image)
     
    temp=-(image+imagelog) 
     
    entropie=somme(temp.flat) // mise a plat de la matrice resultante puis calcul de la somme de tous ses elements.
    il y a des étapes qui ne servent à rien (c'est du matlab non ?):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    imagelog=Log(tableau)
    entropie=-sum((tableau+imagelog).flat)
    Si tu mets ça dans une boucle, c'est bien plus rapide car tu évites un tas d'étapes de recopie inutiles et longues...

    A+

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Salut merci a toi mathieu.
    Bon je vais chercher du coté des algorithmes d'optimisations.

    Je pensais qu'il fallait calculer l'entropie de l'image et qu'avec ca on pouvait calculer un seuil ...

    Tu parle de groupe : le probleme c'est que j'applique mon calcul a toute mon image... j'ai pas la notions de groupes j'ai du mal a cerner le fait d'iterrer...On peut changer la valeur de l'entropie d'une image. ?

    Par quoi remplacer le log de zero pour un pixel noir???
    Bah par zero de toute facon l'equation fait que si le pixel est noir ... on multiplie son log par ZERO..

    Merci
    [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...

  4. #4
    Membre chevronné 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
    Par défaut
    Salut,

    Le seuillage dynamique par entropie d'un histogramme bi-modal consiste à trouver le meilleur seuil pour séparer 2 populations : une population noire et une population blanche.

    La population noire est définie par tous les pixels dont le niveau de gris est inférieur au seuil. La population blanche consiste en tous les autres pixels.

    Le principe du seuillage dynamique par entropie consiste à faire varier le seuil de 1 à 254, valeurs inclues. Pour chaque valeur du seuil, on calcule l'entropie de la population noire et celle de l'entropie blanche.

    Le seuil optimal est celui qui va minimiser les 2 entropies.

    Tu peux également calculer la variance à la place de l'entropie.

    Donc c'est pas l'entropie de l'image qu'on calcule mais l'entropie de la population de pixels noirs et celle de la population blanche. Tu le fait pour les 253 valeurs de seuil.

    A+.

    Flo.

  5. #5
    Membre éclairé Avatar de ronan99999
    Inscrit en
    Juillet 2003
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Juillet 2003
    Messages : 279
    Par défaut
    Juste pour corriger ici on cherche à maximiser l'entropie, on veut favoriser une repartition équitable entre la population des pixels noires et des pixels blancs.

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Ok donc enfait on seuil une image.
    On calcul l'entropie des pixels blancs ,puis des pixels noirs.
    On compare les entropies et le seuil est la valeur pour laquelle la difference est maximum.

    Pour l'utilisation de la variance? Ca se passe pareil... ?


    Juste une derniere question.

    Pour calculer l'entropie des pixels blancs je fais l'entropie de l'image seuillée.(Puisque les pixels noir n'intervienne pas dans la somme)

    Et pour l'entropie des pixels noirs j'inverse mon image et je calcule son entropie....

    Parcque je ne vois pas trop comment calculer l'entropie d'un objet.... Surtout que il n'y a que deux objets.

    Merci de votre interet.

    Bon j'ai programmé ce que je pensais.

    Cad prendre une image
    Creer son inverse

    Les seuiller toutes les deux, calculer et comparer leur entropie.
    Relever le seuil pour lequel la difference d'entropie est maximale
    Et enfin seuiller l'image avec le seuil trouvé.

    Bon j'espere que mon interprétation est bonne, les resultats ont l'aire de parler d'eux meme.

    Juste un probleme le temps de calcul ... mais pour ca je vais aller dans le forum python.

    N'esitez pas a m'informer en cas d'erreur flagrante de ma part.

    Je le mets resolut.

    Merci.

    Pour gagner du temps. J'ai pensé a un truc.

    Il faut calculer l'entropie de l'image seuillé.Puis Calculer l'entropie de son complementaire.(pour 254 seuils)

    Pourquoi ne pas calculer l'entropie de l'image seuillée a zero.
    Alors, dans notre boucle ou l'on effectue nos 254 seuillages on ne calcule pas l'entropie de l'image complementaire en soustrayant l'entropie de l'image dont on vient de faire le seuillage a l'entropie de l'image seuillé a 0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    Entropie_population_noire+Entropie_population_blanche=Entropie_population_totale
    Entropie_population_noire=Entropie_population_totale-Entropie_population_blanche
    Voila.

    Donc comme je l'ai dit precédemment.

    Est ce que

    L'entropie de l'image blanche est egale a l'entropie de la population noire + l'entropie de la population blanche

    Les population blanche et noir sont bien complementaire....



    Quand j'implemente l'entropie de pop Noir dans mon code... ca ne marche pas.

    pour maximiser c'est bien ca?
    Je pense que l'erreur. vient de ca.

    Comme je prog en python...c'est relativement lent. donc j'essai deffectuer le moins de calcul possible....
    Merci
    [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...

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

Discussions similaires

  1. Seuillage par Isodata
    Par Ange_blond dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 15/05/2015, 19h29
  2. effectuer un seuillage par le max d'entropie dans matlab
    Par magntar dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 28/11/2008, 09h52
  3. Double seuillage (seuillage par hystérésis)
    Par Philooo dans le forum OpenCV
    Réponses: 7
    Dernier message: 25/08/2008, 21h02
  4. seuillage par maximum d'entropie
    Par Kro86 dans le forum Images
    Réponses: 7
    Dernier message: 16/06/2008, 16h26
  5. Seuillage par hysteresis
    Par Flo. dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 18/07/2006, 10h25

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