1 pièce(s) jointe(s)
Programme Python Lecture QR-Code (Pillow)
Bonsoir tout le monde,
Avant toutes choses, sachez que je suis débutant (cela se verra rapidement à travers mes "programmes"), donc soyez indulgents :mrgreen: !
Voilà, je suis en Terminale S, spécialité ISN et je dois, réaliser un projet sur les codes barres et les QR-Code, c'est à dire pouvoir les générer et les lire.
Seulement voilà quelque chose ne va pas quant à mon programme pour lire un QR-Code
Je souhaite, à travers mon programme réaliser les étapes suivantes :
1) Repérer le cadre du QR-Code en repérant un enchaînement spécifique d'un certain nombre de pixels noirs
2) Une fois cela fait, il me suffira de me diriger vers le début du code et de lire les données, donc ça, ça devrait aller !
Mais, le problème est qu'un problème se pose quand j'essaie de repérer le cadre. Je m'explique, j'utilise le module pillow afin de procéder à une lecture de pixel, mais voilà lorsque j'exécute mon programme, celui ne fonctionne pas.
Je vous avoue ne pas trop comprendre d'où vient le problème, et la situation doit être aussi floue pour vous à la lecture de ma présentation, mais je vous laisse le programme, en espérant que vous puissiez y trouvez des fautes de logiques etc afin de m'aider un peu.. N'hésitez pas à me poser des questions, je vous en serais très reconnaissant !
Pièce jointe 178334
Au cas où le programme n'est pas lisible :
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
|
#Début du programme
from PIL.Image import *
codeQR=open("QRcodeim.jpg") #Ouverture de mon image de code QR, téléchargez en une sur votre PC, mettez la d'en votre dossier Python, et remplacer le nom "QRcodeim" par le nom de votre image en format jpeg de préférence
largeur,hauteur=codeQR.size
x=0
y=0
a=0
p=codeQR.getpixel((x,y)) #Méthode de lecture de pixel
for y in range(hauteur):
for x in range(largeur):
print(x,y)
if p==(0,0,0): #Dans le cas où un pixel est noir
a=a+1
print(x,y,a)
if a>=(((largeur)/21)*47): # Nombre de pixels noirs censé se suivre afin de détecter ce que je veux
print("ok")
break
if p==(255,255,255): # Dans le cas où c'est blanc
a=0
print("bad")
print(a)
#FinDuProgramme |
Voili voilou, merci d'avance pour votre aide, en espérant que c'est pas trop bordélique !