リンク

2017年6月28日水曜日

pythonで画像からQRコードを読み込む


今回は、pythonを使って画像ファイル内のQRコード内容を取得する方法をご紹介します。

環境
  • macOS Sierra 10.12.5
  • python 3.4


モジュールのインストール
今回使用するのは「pyzbarモジュール」です。
python2系では「zbarモジュール」が使えるのですが、3系には対応していません。
なので「pyzbarモジュール」を使用します。

Windowsの方はコマンドプロンプト、Macの方はターミナルを起動し、次のコマンドを実行してください。
>> pip install pyzbar
もしくは下記のページからソースを直接ダウンロードしてください。
https://pypi.python.org/pypi/pyzbar/

pyzbarモジュールだけでなく「PILモジュール」も必要です。
未入手の方は次のコマンドで合わせて入手してください。
>> pip install pillow

さらに、大元となる「ZBar」も必要です。
下記のページにアクセスし、別途ダウンロードを行なってください。
http://zbar.sourceforge.net/
Macの方はHomebrewが使える状態であれば、次のコマンドでもダウンロード&インストールが完了しますので楽チンです。
>> brew install zbar

以上で環境の構築は完了です。


使用する画像
今回はpythonでQRコード画像を作成するで作成した画像ファイルを使用します。


スクリプト
pythonスクリプトファイルと同じフォルダ内にある「test.png」にアクセスし、その中のQRコード内容を出力するサンプルです。
# -*- coding: UTF-8 -*-

from pyzbar.pyzbar import decode
from PIL import Image

# 画像ファイルの指定
image = "test.png"

# QRコードの読取り
data = decode(Image.open(image))

# コード内容を出力
print(data[0][0].decode('utf-8', 'ignore'))





実行結果
QRコードの内容が出力されました。



まとめ
たった数行で読み取れるので非常に簡単でした。
QRコード内容に日本語が含まれる場合は文字化け対策でdecodeするのを忘れないようにしてください。

0 件のコメント:

コメントを投稿