Wie dekodiert man ein QR-Code Bild in (vorzugsweise reinem) Python?

TL;DR: ich brauche eine Weise zu decodieren, die einen QR-code aus image-Datei verwenden (vorzugsweise rein) Python.

Habe ich eine jpg-Datei mit einem QR-code, den ich entschlüsseln will, mit Python. Ich habe ein paar Bibliotheken, die behaupten, dies zu tun:

PyQRCode ( website hier ), die angeblich Dekodieren von qr-codes aus Bildern, indem Sie einfach die Bereitstellung ein Pfad wie diesem:

import sys, qrcode
d = qrcode.Decoder()
if d.decode('out.png'):
    print 'result: ' + d.result
else:
    print 'error: ' + d.error

Also habe ich einfach installiert, es mit sudo pip install pyqrcode. Die Sache finde ich seltsam über den Beispiel-code oben ist jedoch, dass es nur Importe qrcode (und nicht pyqrcode wenn) Da ich denke, dass qrcode bezieht sich auf diese Bibliothek die nur generieren qr-code-Bilder, die es irgendwie verwirrt mich. Also habe ich versucht den code von oben mit beiden pyqrcode und qrcodeaber beide scheitern an der zweiten Zeile mit dem Inhalt AttributeError: 'module' object has no attribute 'Decoder'. Darüber hinaus die website bezieht sich auf Ubuntu 8.10 (das kam mehr als 6 Jahren) und ich kann nicht finden, eine öffentliche (git oder andere) - repository, um zu überprüfen, die neueste verpflichten. Also ging ich auf die nächste Bibliothek:

ZBar (website hier) Ansprüche "an open source software suite for reading bar codes from various sources, such as image files." Also versuchte ich die Installation auf Mac OSX läuft sudo pip install zbar. Dieser schlägt mit error: command 'cc' failed with exit status 1. Ich habe versucht, die Anregungen in den Antworten auf diese Frage ALSOaber ich kann nicht scheinen, um es zu lösen. Also habe ich beschlossen, weiter zu gehen:

QRToolsdie nach dieser Beitrag entschlüsseln können Bilder einfach mit dem folgenden code:

from qrtools import QR
myCode = QR(filename=u"/home/psutton/Documents/Python/qrcodes/qrcode.png")
if myCode.decode():
  print myCode.data
  print myCode.data_type
  print myCode.data_to_string()

Also versuchte ich es bei der Installation mit sudo pip install qrtoolsdie können nichts finden. Ich habe auch versucht es mit python-qrtoolsqr-toolspython-qrtools und ein paar mehr Kombinationen, aber leider ohne Erfolg. Ich nehme an, es bezieht sich auf diese repodie sagt, es basiert auf ZBar (siehe oben). Obwohl ich will mit meinen code auf Heroku (und so lieber eine Reine Python-Lösung) habe ich erfolgreich installiert es auf einer Linux-box (mit sudo apt-get install python-qrtools) und versuchte es läuft:

from qrtools import QR
c = QR(filename='/home/kramer65/qrcode.jpg')
c.data  # prints u'NULL'
c.data_type  # prints u'text'
c.data_to_string()  # prints '\xef\xbb\xbfNULL' where I expect an int (being `1234567890`)

Obwohl dies scheint zu entschlüsseln, es wird nicht scheinen, um es richtig zu tun. Darüber hinaus muss ZBar und ist somit kein reines Python. Also habe ich beschlossen noch eine weitere Bibliothek.

PyXing (website hier) ist angeblich eine Python-Portierung der populären Java -ZXing Bibliothekaber die erste und einzige commit ist 6 Jahre alt und das Projekt hat keine readme-Datei oder Dokumentation zu löschen.

Den rest fand ich ein paar qr-en - Programmierer (nicht deProgrammierer) und einige API-Endpunkte, die Sie entschlüsseln für Sie. Da ich nicht gerne diesen service angewiesen zu sein auf andere API-Endpunkte, die würde ich behalten wollen die Dekodierung eine lokale Angelegenheit.

So zu schließen; würde jemand wissen, wie kann ich Dekodieren von QR-codes aus Bildern in (bevorzugt Reine) Python? Alle Tipps sind willkommen!

InformationsquelleAutor der Frage kramer65 | 2014-12-01

Schreibe einen Kommentar