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

Python Discussion :

Erreur "new style getarfs format but argument is not a tuple"


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 12
    Par défaut Erreur "new style getarfs format but argument is not a tuple"
    Bonjour, je suis en terminale S et je développe un programme pour mon projet d'ISN.
    Dans mon programme je doit détecter un rectangle dans une image et obtenir les coordonnées du pixel le plus en haut à gauche du rectangle. Au préalable j'ai transformé l'image en couleur en niveau et de gris et effectuer un seuillage pour la passer en noir et blanc.
    J'ai donc ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    from PIL import Image
     
    im1 = Image.open('Sans titre.jpg') 
    L,H = im1.size 
    im2 = Image.new ("L",(L,H)) 
    im3 = Image.new ("L",(L,H)) 
     
    coor=[0,0]
    for y in range(H):
        for x in range(L):
            r, g, b = im1.getpixel((x,y))
            gris = (r + g +b)/3
            im2.putpixel((x,y),(gris))
    im2.save("niveau-gris.jpg")
     
    im2 = Image.open('niveau-gris.jpg')
    L,H = im2.size
    seuil=20                          #int(input("Choississez le seuil, entre 0 et 255")) #On demande à l'utilisateur la valeur du seuil qu'il souhaite.
    for y in range(H): #Pour y prenant sa valeur dans H.
        for x in range(L): #Pour x prenant sa valeur dans L.
            p = im2.getpixel((x,y)) # p prend la valeur de chaque pixel de l'image 1.
            if p >=seuil: #Si p est supérieur ou égal au seuil,
                im3.putpixel((x,y),(255)) #On fixe la valeur du pixel à 255 (blanc).
            if p <seuil: 
                im3.putpixel((x,y),(0)) 
    im3.save("image-seuillage.jpg") 
    im3.show()
     
    h=0
    n=0
    for y in range(H) :
        raz = 0
        for x in range (L):
            m = im3.getpixel((x,y))
            n = im3.getpixel((x-raz,y))
            raz = 1
            if m != n :
                for x in range(L) :
                    p = im3.getpixel((x,y))
                    if p <= 20 :
                        h = h+1
                        if h == 20 :
                            coor=[x,y]
    print(coor)

    Et lorsque je le lance j'ai le message d'erreur "new style getargs format but argument is not a tuple"
    Je sais pas d'où ça viens, je ne vois pas de tuple dans mon programme, est ce que cela peut venir du fait que j'aurais une ancienne version du logiciel ? Je ne pense pas que cela vienne des deux premières parties car avant que je fasse la 3e ça marchais très bien.
    Donc voila, merci d'avance à ceux qui m'aideront.

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Les valeurs que tu donnes aux pixels doivent être au format RGB. i.e. putpixel((x, y), (110, 24, 185))

    Pour la conversion en noir et blanc utilise plutôt im2.convert("L"), getpixel et putpixel sont lents.

    http://pillow.readthedocs.io/en/4.1.....Image.convert
    http://pillow.readthedocs.io/en/4.1....Image.putpixel

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 12
    Par défaut
    Je ne pense pas que le message d'erreur vienne de là, la partie qui met l'image en noir et blanc fonctionne lorsque je ne met pas la 3e.
    En tout cas, je vais essayer avec la fonction que tu me propose.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 12
    Par défaut
    J'ai trouvé d'où venait ce message d'erreur, c'était à cause de la version d'edupython, sur mon ordi perso j'avais une versions plus récente que sur l'ordi où j'avais fait le programme.

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 06/03/2007, 10h07
  2. [MySQL] Message d'erreur SQL mysql_fetch_assoc(): supplied argument is not a valid
    Par pony99 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 19/02/2007, 16h44
  3. [MySQL] Erreur mysql_num_rows: supplied argument is not a valid MySQL result resource
    Par dfournier dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/12/2006, 16h40
  4. Erreur supplied argument is not a valid MySQL resource
    Par abidi_niz dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 06/09/2006, 13h26
  5. Réponses: 3
    Dernier message: 30/09/2004, 20h16

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