Scannen von QR-Code über zbar und Raspicam-modul
Will ich mit meinem raspi cam-modul zum Scannen von QR-codes.
Für die Erkennung und Dekodierung von qr-codes, die ich verwenden möchten zbar.
Mein Aktueller code:
import io
import time
import picamera
import zbar
import Image
if len(argv) < 2: exit(1)
# Create an in-memory stream
my_stream = io.BytesIO()
with picamera.PiCamera() as camera:
camera.start_preview()
# Camera warm-up time
time.sleep(2)
camera.capture(my_stream, 'jpeg')
scanner = zbar.ImageScanner()
scanner.parse_config('enable')
pil = Image.open(argv[1]).convert('L')
width, height = pil.size
raw = pil.tostring()
my_stream = zbar.Image(width, height, 'Y800', raw)
scanner.scan(image)
for symbol in image:
print 'decoded', symbol.type, 'symbol', '"%s"' % symbol.data
Wie Sie sehen können, ich will ein Bild zu kreieren stream, senden diesen Datenstrom zbar zu prüfen, ob ein qr-code im Bild enthalten.
Ich bin nicht in der Lage, diesen code auszuführen, dieser Fehler ist das Ergebnis:
Segmentation fault
------------------ (program exited with code: 139) Drücken Sie return, um fortzufahren
Ich nicht finden, eine Lösung, wie fixx dieser Fehler, keine Ahnung?
Freundlichen GRÜßEN;
InformationsquelleAutor user3551782 | 2014-05-08
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Mangel an all den anderen Antworten, dass Sie eine große Menge von VERZÖGERUNG - zum Beispiel, was Sie Scannen und anzeigen auf dem Bildschirm war eigentlich ein frame genommen mehrere Sekunden und so weiter.
Dies ist aufgrund der langsamen CPU des Raspberry Pi. Also die
frame-rate
ist viel größer als die rate unserer software können Lesen und Scannen.Mit viel Mühe, habe ich schließlich diesen code, die WENIG VERSPÄTUNG. Also, wenn Sie geben Sie einen QRCode/BarCode -, es wird Ihnen ein Ergebnis in weniger als einer Sekunde.
Den trick, den ich verwenden, erfahren Sie im code.
InformationsquelleAutor fzyzcjy
In der Zeile
scanner.scan(Bild)
verwendest du eine variable, die noch nicht erschienen in den code vor. Da zbar ist in C geschrieben, es nicht zu fangen, dass die variable nicht definiert ist, und die Bibliothek zu Lesen versucht der garbage-Daten, als wäre es ein Bild. Also der segfault. Ich vermute, du meintest mein_stream statt Bild.
InformationsquelleAutor user4095952
ich bin mit QR-Dekodierung auf raspberry für mein Projekt. Ich löste es, indem
subprocces Modul.
Hier ist meine Funktion für QR-Dekodierung:
Können Sie einfach fügen Sie Parameter, um zu funktionieren, wie img_widt und img_height
und ändern Sie diesen Teil des Codes
zu
wenn Sie wollen andere Größe des Bildes für die Decodierung.
InformationsquelleAutor Josip Grggurica
Nach der Lektüre diese, ich war in der Lage zu kommen mit einer pythonic Lösung mit OpenCV.
Zuerst bauen Sie OpenCV auf dem Pi durch folgende diese Anweisungen. Das wird wohl mehrere Stunden dauern.
Starte nun den Pi und das folgende Skript verwenden (vorausgesetzt, du hast python-zbar installiert), um den QR - /barcode-Daten:
Hinweis: ich musste den Raspi-Kamera das Objektiv gegen den Uhrzeigersinn, etwa 1/4 - 1/3 umdrehung, bevor zbar war in der Lage zum erkennen des QR/barcodes.
Mit dem obigen code, wenn zbar erkennt einen QR/barcode, die decodierten Daten werden gedruckt in der Konsole. Es läuft ständig, nur stoppen, wenn die
n
- Taste gedrückt wird,InformationsquelleAutor Ryan
Für alle, die noch auf der Suche nach Lösungen zu diesem...
Dieser code ist hässlich, aber es funktioniert aus einer normalen webcam ziemlich gut, habe nicht versucht, die Pi-Kamera noch. Ich bin neu in python, also das ist das beste, ich könnte kommen mit, arbeitete in beiden Python2 und 3.
Machen ein bash-Skript aufgerufen kill.sh und machen Sie es ausführbar... (chmod -x)
Führen Sie dann einen system-Aufruf von python-wie so...
Hoffentlich hilft Menschen mit den gleichen Fragen in der Zukunft!
InformationsquelleAutor Dan2theR
Ziemlich späte Antwort, aber ich lief in einer Reihe von Fragen, während Sie versuchen, um Zbar arbeiten. Obwohl ich mit einer USB-webcam, aber ich hatte zum installieren von mehreren Bibliotheken vor, ich könnte zu installieren zbar. Ich fswebcam installiert, python-zbar, libzbar-dev und schließlich lief setup.py.
Mehr wichtiger ist, die zbar bei sourceforge hat bei mir nicht funktioniert, aber das man von github, die ein Python-wrapper für mich gearbeitet.
Dokumentierte ich meine Schritte durch Schritte auf http://techblog.saurabhkumar.com/2015/09/scanning-barcodes-using-raspberry-pi.html, ob es helfen könnte
InformationsquelleAutor Saurabh Kumar
Nur eine kleine Modifikation Dan2theR, weil ich nicht wollen, erstellen Sie eine weitere shell-Datei.
InformationsquelleAutor Mike