Bonjour, cliquez-ici pour vous inscrire et participer au forum.
  • Login:



+ Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 15 sur 25

[Python] Fonction de moyennage en niveaux de gris

  1. Samuel9-14

    Date d'inscription
    octobre 2012
    Localisation
    Bayeux, Calvados
    Messages
    1 302

    [Python] Fonction de moyennage en niveaux de gris

    Bonjour à tous,
    je cherche à écrire une fonction qui prend en argument une image en niveau de gris et qui donne une image "floutée", c'est-à-dire qu'elle moyenne chaque pixel avec sa matrice de pixels de voisins (25 pixels en tout moyennés). Le problème c'est que quand je reconstruis l'image à partir de l'limage moyennée, je n'ai qu'une image toute noire.
    Quelqu'un a une idée ?

    Pour info, l'image d'origine est une image en niveau de gris seuillée. C'est une matrice composée plus ou moins aléatoirement de 0 et de 255.

    Code:
    s=0
    def Moyennage(img):
        img_moyennee = np.ones((len(img[:,1]),len(img[:,2])),int)
        for x in range(len(img[1,:])):
            for y in range(len(img[:,1])):
                if x-2>=0 and y-2>=0 and x+2<=len(img[1,:])-2 and y+2<=len(img[:,1])-2:
                    global s
                    s=0
                    for x2 in range(x-2,x+2):
                        for y2 in range(y-2,y+2):
                            s+=img[x2,y2]
                img_moyennee[x,y]=s/25
                print(img_moyennee)
    
                return img_moyennee
    Merci d'avance.

    -----

     


    • Publicité



  2. CM63

    Date d'inscription
    juin 2006
    Localisation
    Un peu au large de la faille de Limagne
    Âge
    64
    Messages
    3 118

    Re : [Python] Fonction de moyennage en niveaux de gris

    Il faut faire l'opération avec des flottants et prendre la partie entière du résultat, parce que là, par exemple 24/25 ça fait 0.
     

  3. Samuel9-14

    Date d'inscription
    octobre 2012
    Localisation
    Bayeux, Calvados
    Messages
    1 302

    Re : [Python] Fonction de moyennage en niveaux de gris

    Ha oui en effet !
    Si je déclare s en flottant c'est suffisant j'imagine ? (c'est-à-dire que Python va interpréter ma somme d'entiers comme un flottant ?).

    Mais d'un autre côté le cas de figure "24/25" ne peut pas se présenter puisque mes pixels ont pour valeur 0 ou de 255. Donc les valeurs possibles pour s sont dans l'ensemble suivant {0,255,510,1020,...,255*25} et dans ces cas là s ne prend jamais la valeur 0.
     

  4. Jack

    Date d'inscription
    avril 2003
    Localisation
    Metz
    Messages
    15 957

    Re : [Python] Fonction de moyennage en niveaux de gris

    Citation Envoyé par CM63 Voir le message
    prendre la partie entière du résultat, parce que là, par exemple 24/25 ça fait 0.
    Du coup, ça revient au même, le résultat va être 0
     

  5. Samuel9-14

    Date d'inscription
    octobre 2012
    Localisation
    Bayeux, Calvados
    Messages
    1 302

    Re : [Python] Fonction de moyennage en niveaux de gris

    En fait le problème a l'air d'être algorithmique puisque mon programme tourne sans erreur mais ma matrice d'origine (composée de 1) reste inchangée, à aprt le premier terme qui se met à 0...
     


    • Publicité



  6. CM63

    Date d'inscription
    juin 2006
    Localisation
    Un peu au large de la faille de Limagne
    Âge
    64
    Messages
    3 118

    Re : [Python] Fonction de moyennage en niveaux de gris

    Citation Envoyé par Jack Voir le message
    Du coup, ça revient au même, le résultat va être 0
    Evidemment, mais c'était un exemple, si le calcul est plus compliqué, ça revient pas au même.
     

  7. CM63

    Date d'inscription
    juin 2006
    Localisation
    Un peu au large de la faille de Limagne
    Âge
    64
    Messages
    3 118

    Re : [Python] Fonction de moyennage en niveaux de gris

    Si je comprends bien tu veux obtenir des niveaux de gris à partir de pixels d'origine qui ne sont que 1 ou 0, dans ce cas il vaut quelque par multiplier par 256, par exemple pour que le résultat varie entre 0 et 255 plutôt qu'entre 0 et 1. Et attention à faire les divisions en dernier de façon à ce que la partie entière ne soit prise qu'à la fin.
    Dernière modification par CM63 ; 19/07/2017 à 09h18.
     

  8. Samuel9-14

    Date d'inscription
    octobre 2012
    Localisation
    Bayeux, Calvados
    Messages
    1 302

    Re : [Python] Fonction de moyennage en niveaux de gris

    Oui et non, ma matrice d'origine, celle que j'appelle 'img' dans ma fonction, est déjà une matrice de 0 et 255 (et non de 0 et de 1). Et ma fonction est censée renvoyer une matrice de valeurs comprises entre 0 et 255 (valeurs discrètes soit dit en passant, elles prennent leur valeur dans l'ensemble {0, 255/25, 510/25, 1020/25,...255} ). Donc une matrice qui, elle, est en niveaux de gris. En fait je cherche juste à "flouter" mon image d'origine.


    Une fois floutée je seuille encore l'image avec un seuil bien choisi. Le but est de débruiter une image enregistrée dans des conditions d'exposition un peu particulières.
     

  9. CM63

    Date d'inscription
    juin 2006
    Localisation
    Un peu au large de la faille de Limagne
    Âge
    64
    Messages
    3 118

    Re : [Python] Fonction de moyennage en niveaux de gris

    Bon ben le plus simple est de travailler avec des flottants, en gros ça va faire comme des rationnels, car les nombres sont faibles.
    Par exemple tu travaille avec des nombres flottants entre 0.0 et 1.0, et en dernier tu multiplies par 256.
    Dernière modification par CM63 ; 19/07/2017 à 09h33.
     

  10. Samuel9-14

    Date d'inscription
    octobre 2012
    Localisation
    Bayeux, Calvados
    Messages
    1 302

    Re : [Python] Fonction de moyennage en niveaux de gris

    Je ne vois pas ce que ça va changer en fait. J'ai essayé en prenant s comme nombre flottant, mais ça ne change rien à mon problème.
     

  11. CM63

    Date d'inscription
    juin 2006
    Localisation
    Un peu au large de la faille de Limagne
    Âge
    64
    Messages
    3 118

    Re : [Python] Fonction de moyennage en niveaux de gris

    Ben en fait j'ai la flemme de regarder le détail de ton ton code, mais c'est la bonne solution de travailler avec des flottants: ça évite les arrondis.
     

  12. CM63

    Date d'inscription
    juin 2006
    Localisation
    Un peu au large de la faille de Limagne
    Âge
    64
    Messages
    3 118

    Re : [Python] Fonction de moyennage en niveaux de gris

    Si je regarde le détail de ton code, je ne comprends pas tout, quel est le rôle de np.ones() par exemple?
     

  13. Samuel9-14

    Date d'inscription
    octobre 2012
    Localisation
    Bayeux, Calvados
    Messages
    1 302

    Re : [Python] Fonction de moyennage en niveaux de gris

    np.ones sert juste à construire la matrice constituant la nouvelle image. C'est une pré-allocation.
     

  14. CM63

    Date d'inscription
    juin 2006
    Localisation
    Un peu au large de la faille de Limagne
    Âge
    64
    Messages
    3 118

    Re : [Python] Fonction de moyennage en niveaux de gris

    Ok, je regarde la suite, mais comme je n'ai pas Python sur mon portable, ça ne va pas être simple. Je ne sais plus comment on fait pour convertir un entier en flottant, je regarde sur le web.
     

  15. Samuel9-14

    Date d'inscription
    octobre 2012
    Localisation
    Bayeux, Calvados
    Messages
    1 302

    Re : [Python] Fonction de moyennage en niveaux de gris

    Merci !
    Je crois que rajouter un "." après l'entier fait la conversion en flottant.
     


    • Publicité







Sur le même thème :





 

Discussions similaires

  1. Fonction et liste Python
    Par Lionelno dans le forum Programmation et langages, Algorithmique
    Réponses: 10
    Dernier message: 26/01/2016, 09h27
  2. Fonction ID3 python
    Par pedrolitoUA dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 19/09/2015, 18h01
  3. Distorsion d'image avec BufferedImage niveaux de gris 16 bits
    Par lignux dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 05/04/2013, 13h39
  4. Pb de moyennage de fonction de transfert
    Par florangers dans le forum Physique
    Réponses: 2
    Dernier message: 09/01/2012, 12h00
  5. Méthode de moyennage
    Par Novocaine dans le forum Électronique
    Réponses: 10
    Dernier message: 22/12/2007, 10h04