Bonsoir tout le monde,
Avant toutes choses, sachez que je suis débutant (cela se verra rapidement à travers mes "programmes"), donc soyez indulgents!
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 !
QRCode Prog Test 001bis.py
Au cas où le programme n'est pas lisible :
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 #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 !
Partager