Help us understand the problem. What is going on with this article?

Python3で複数のQRコードを読み取る

TL;DR;

Python3でpyzbarを使って1イメージ内にある複数のQRコードを読み込みます。
備忘録です。

実行環境

  • macOS Mojave 10.14.5
  • Python 3.7.3
  • zbar 0.10.9
  • pyzbar 0.1.8

pyzbar とは

Read one-dimensional barcodes and QR codes from Python 2 and 3 using the zbar library.
-- zbarライブラリを使用してPython 2と3から一次元バーコードとQRコードを 読みます。
pyzbar - PyPI

ZBarとは

ZBar bar code reader

すごいOSSみたい
zbar で画像からバーコードを読み取る

インストール

pyzbarのオフィシャルにあるとおりにインストール

brew install zbar
pip install pyzbar

画像を読むpillowもインストール

pip install Pillow

pillowはPILのforkらしい
Pillow 6.0.1 Documentation
PIL(Python Imaging Library) が Pillow に変わっていた

実行メモ

イメージを適当につくって読み込ませます。
実行したコードはオフィシャルに書いてあるもの。

イメージはPagesのテンプレートに適当にQRコードをはったやつです。

sample.png

❯❯❯ python
Python 3.7.3 (default, Apr 14 2019, 02:06:28)
[Clang 10.0.1 (clang-1001.0.46.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>> from pyzbar.pyzbar import decode
>>> from PIL import Image
>>> from pandas import DataFrame
>>> data = DataFrame(decode(Image.open('sample.png')))
>>> data
data type rect polygon
1 b'http://www.apple.com/jp/' QRCODE (座標) (座標)
2 b'https://googl.com' QRCODE (略) (略)
3 b'https://www.amazon.co.jp' QRCODE (略) (略)

値を見やすいようにpandasのDataFrameに入れています。

間違えてつくったQRコードのURLもきちんと読めていますね。
複数OK、座標まちまちOKであることを確認できました。

参考

QRコードの商標を持っているデンソーウェーブのサイト
QRコードドットコム FAQ 

jrfk
こんにちは!
jsl
株式会社日本システム技研は、1976年に設立した長野に本社を構えるIT企業です。主にPython/Djangoの使用したWebアプリケーションの受託開発とプロダクト開発を行なっています。エンジニア向けコミュニティGEEKLAB.NAGANO( http://geeklab-nagano.com ) の運営をしています。
https://jsl.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした