Lire le code QR à partir du fichier image avec Python (Mac)

Utilisez ZBar et le module Python https://pypi.python.org/pypi/zbar/. Il prend également en charge les codes à barres autres que les codes QR.

Afin de rationaliser l'agrégation des résultats expérimentaux à l'aide de cartes papier, j'ai noté que j'avais préparé un code QR dans la carte à l'avance et l'ai traité automatiquement avec Python après la numérisation.

Environnement, version

Installation

ZBar

Installation unique avec Homebrew.

$ brew install zbar

Module zbar Python

J'aimerais l'installer avec PyPI en une seule fois, mais si je le mets tel quel, Python mourra en raison d'une erreur de segmentation au moment de l'importation.

$ 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

Par conséquent, appliquez Patch au code source et installez-le. Dans ce patch, nous ajoutons une sentinelle au tableau pour éviter l'apparition d'une erreur de Segmantation.

$ 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
>>>

Cette fois, tout allait bien.

Module Oreiller Python

Entrez avec un PyPI.

$ pip install Pillow

Extraire le code QR du fichier image

Code de test Python.

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/"

référence

Recommended Posts

Lire le code QR à partir du fichier image avec Python (Mac)
Lire ligne par ligne à partir d'un fichier avec Python
Charger fbx depuis python avec cinema4d
Installez python avec mac vs code
Lire le fichier CSV avec python (Télécharger et analyser le fichier CSV)
Lisons le fichier RINEX avec Python ①
Acquisition d'images depuis une caméra avec Python + OpenCV
Lisez le fichier en Python avec un chemin relatif depuis le programme
[Automation] Lire le courrier (fichier msg) avec Python
Comment lire un fichier CSV avec Python 2/3
Traitement d'image à partir de zéro avec python (5) Transformation de Fourier
[Python] Comment lire des fichiers Excel avec des pandas
Analyse d'images médicales avec Python 1 (Lire une image IRM avec SimpleITK)
Lire les données de la table dans un fichier PDF avec Python
Traitement d'image à partir de zéro avec python (4) Extraction de contour
Convertir le code de caractère du fichier avec Python3
Traitement d'image avec Python
Lire le fichier csv Python
[Python] Lire depuis Stdin
Comment récupérer des données d'image de Flickr avec Python
Lire le fichier json avec Python, le formater et générer le json
python + sélénium + safari-run iphone safari de mac avec webdriver
Obtenez le code du pays avec python
Traitement d'image avec Python (partie 2)
Python avec VSCode (Windows 10)
Lire csv avec des pandas python
Lire les coordonnées de l'image avec Python-matplotlib
Édition d'image avec python OpenCV
Python3 + Django ~ Mac ~ avec Apache
Dessiner un fichier netCDF avec python
Tri des fichiers image avec Python (2)
Tri des fichiers image avec Python (3)
Déboguer Python avec VS Code
Traitement d'image avec Python (partie 1)
Tweet avec image en Python
Tri des fichiers image avec Python
Arrêtez Omxplayer à partir du code Python
Traitement d'image avec Python (3)
Générer du code QR en Python
Avec skype, notifiez avec skype de python!
Télécharger le fichier csv avec python
Utiliser OpenCV avec Python @Mac
Documenter le code Python avec Doxygen
[Python] Traitement d'image avec scicit-image
Lire des données json avec python
Préparer l'environnement de développement Python avec Mac + Windows + VisualStudio Code (version Windows)
Préparer l'environnement de développement Python avec Mac + Windows + VisualStudio Code (version Mac)
Python> Lire à partir d'une chaîne multiligne au lieu d'un fichier> io.StringIO ()
[Python] Lire les arguments de ligne de commande à partir du nom de fichier ou de stdin
Comment lire un fichier Excel (.xlsx) avec Pandas [Python]
Exécuter le script Python à partir du fichier de commandes
Décrypter le code QR avec CNN
Découpez une image avec python
Extraire le fichier xz avec python
Appeler C depuis Python avec DragonFFI