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