Lesen Sie den QR-Code aus der Bilddatei mit Python (Mac).

Verwenden Sie ZBar und das Python-Modul https://pypi.python.org/pypi/zbar/. Es werden auch andere Barcodes als QR-Codes unterstützt.

Um die Aggregation der experimentellen Ergebnisse mithilfe von Papierkarten zu optimieren, habe ich notiert, dass ich im Voraus einen QR-Code in der Karte vorbereitet und ihn nach dem Scannen automatisch mit Python verarbeitet habe.

Umgebung, Version

Installation

ZBar

One-Shot-Installation mit Homebrew.

$ brew install zbar

Python zbar Modul

Ich möchte dies mit PyPI auf einmal installieren, aber wenn ich es so einsetze, wie es ist, stirbt Python aufgrund eines Segmentierungsfehlers zum Zeitpunkt des Imports.

$ pip install zbar

$ python
Python 2.7.9 (default, Jan  7 2015, 11:50:42) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import zbar
Segmentation fault: 11

$ pip uninstall zbar

Wenden Sie daher Patch auf den Quellcode an und installieren Sie ihn. In diesem Patch fügen wir dem Array Sentinel hinzu, um das Auftreten eines Segmantation-Fehlers zu verhindern.

$ wget https://pypi.python.org/packages/source/z/zbar/zbar-0.10.tar.bz2
$ wget https://github.com/npinchot/zbar/commit/d3c1611ad2411fbdc3e79eb96ca704a63d30ae69.diff
$ tar jxvf zbar-0.10.tar.bz2
$ cd zbar-0.10
$ patch -p1 < ../d3c1611ad2411fbdc3e79eb96ca704a63d30ae69.diff
patching file imagescanner.c
$ python setup.py install

$ python
Python 2.7.9 (default, Jan  7 2015, 11:50:42) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import zlib
>>>

Diesmal war es okay.

Python-Kissenmodul

Geben Sie mit einem PyPI ein.

$ pip install Pillow

Extrahieren Sie den QR-Code aus der Bilddatei

Python-Testcode.

zbar_test.py

zbar_test.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

### cf. http://99blues.dyndns.org/blog/2010/12/zbar/

import sys
import zbar
import PIL.Image
 
if len(sys.argv) < 2: exit(1)
 
# create a reader
scanner = zbar.ImageScanner()
 
# configure the reader
scanner.parse_config('enable')
 
# obtain image data
pil = PIL.Image.open(sys.argv[1]).convert('L')
(width, height) = pil.size
raw = pil.tostring()
 
# wrap image data
image = zbar.Image(width, height, 'Y800', raw)
 
# scan the image for barcodes
scanner.scan(image)
 
# extract results
for symbol in image:
    # do something useful with results
    print 'decoded', symbol.type, 'symbol', '"%s"' % symbol.data
 
# clean up
del(image)
$ ./zbar_test.py /path/to/image.jpg
decoded QRCODE symbol "http://www.example.com/"

Referenz

Recommended Posts

Lesen Sie den QR-Code aus der Bilddatei mit Python (Mac).
Lesen Sie mit Python Zeile für Zeile aus der Datei
Laden Sie fbx aus Python mitinema4d
Installieren Sie Python mit Mac vs Code
CSV-Datei mit Python lesen (CSV-Datei herunterladen und analysieren)
Lesen wir die RINEX-Datei mit Python ①
Bildaufnahme von der Kamera mit Python + OpenCV
Lesen Sie die Datei in Python mit einem relativen Pfad aus dem Programm
[Automatisierung] Lesen Sie E-Mails (Nachrichtendatei) mit Python
Lesen einer CSV-Datei mit Python 2/3
Bildverarbeitung von Grund auf mit Python (5) Fourier-Transformation
[Python] Wie man Excel-Dateien mit Pandas liest
Medizinische Bildanalyse mit Python 1 (MRT-Bild mit SimpleITK lesen)
Lesen Sie Tabellendaten in einer PDF-Datei mit Python
Bildverarbeitung von Grund auf mit Python (4) Konturextraktion
Konvertieren Sie den Zeichencode der Datei mit Python3
Bildverarbeitung mit Python
Lesen Sie die Python-CSV-Datei
[Python] Von Stdin lesen
So kratzen Sie Bilddaten von Flickr mit Python
Lesen Sie die json-Datei mit Python, formatieren Sie sie und geben Sie json aus
Python + Selen + Safari - Führen Sie die iPhone Safari vom Mac mit dem Webdriver aus
Holen Sie sich den Ländercode mit Python
Bildverarbeitung mit Python (Teil 2)
Python mit VSCode (Windows 10)
Lesen Sie CSV mit Python-Pandas
Lesen Sie die Bildkoordinaten mit Python-matplotlib
Bildbearbeitung mit Python OpenCV
Python3 + Django ~ Mac ~ mit Apache
Zeichnen Sie eine netCDF-Datei mit Python
Sortieren von Bilddateien mit Python (2)
Sortieren von Bilddateien mit Python (3)
Debuggen Sie Python mit VS-Code
Bildverarbeitung mit Python (Teil 1)
Tweet mit Bild in Python
Bilddateien mit Python sortieren
Stoppen Sie Omxplayer vom Python-Code
Bildverarbeitung mit Python (3)
Generieren Sie QR-Code in Python
Mit Skype benachrichtigen Sie mit Skype von Python!
Laden Sie die CSV-Datei mit Python herunter
Verwenden von OpenCV mit Python @Mac
Dokumentieren Sie Python-Code mit Doxygen
[Python] Bildverarbeitung mit Scicit-Image
Lesen von JSON-Daten mit Python
Bereiten Sie die Python-Entwicklungsumgebung mit Mac + Windows + VisualStudio Code (Windows-Version) vor.
Bereiten Sie die Python-Entwicklungsumgebung mit Mac + Windows + VisualStudio Code (Mac-Version) vor.
Python> Aus einer mehrzeiligen Zeichenfolge anstelle einer Datei lesen> io.StringIO ()
[Python] Befehlszeilenargumente aus Dateiname oder Standard lesen
Lesen einer Excel-Datei (.xlsx) mit Pandas [Python]
Führen Sie das Python-Skript aus der Batchdatei aus
QR-Code mit CNN entschlüsseln
Schneiden Sie ein Bild mit Python aus
Extrahieren Sie die xz-Datei mit Python
Rufen Sie C von Python mit DragonFFI auf