TL; DR :(できれば純粋な)Pythonを使用して画像ファイルからQRコードをデコードする方法が必要です。
Pythonを使用してデコードしたいQRコードを含むjpgファイルがあります。私はこれを行うと主張するいくつかのライブラリを見つけました:
PyQRCode(ここのウェブサイト)は、次のようなパスを提供するだけで、画像からqrコードをデコードできると思われます。
import sys, qrcode
d = qrcode.Decoder()
if d.decode('out.png'):
print 'result: ' + d.result
else:
print 'error: ' + d.error
だから私は単にそれを使用してインストールしましたsudo pip install pyqrcode
。しかし、上記のサンプルコードについて私が奇妙だと思うのは、インポートするだけであるということですqrcode
(ただし、そうではありませpyqrcode
ん)。qrコードイメージしか生成できないこのライブラリをqrcode
参照していると思うので、ちょっと混乱しました。両方で上記のコードを試してみました私はそうと、しかし言って二行目で失敗の両方。さらに、このWebサイトはUbuntu 8.10(6年以上前にリリースされた)を参照しており、最新のコミットを確認するためのパブリック(gitまたはその他の)リポジトリが見つかりません。それで私は次の図書館に移りました:pyqrcode
qrcode
AttributeError: 'module' object has no attribute 'Decoder'
ZBar(ここのウェブサイト)は"an open source software suite for reading bar codes from various sources, such as image files."
そう主張しているので、私はそれを実行しているMacOSXにインストールしてみましたsudo pip install zbar
。これはで失敗しerror: command 'cc' failed with exit status 1
ます。このSOの質問への回答で提案を試みましたが、解決できないようです。だから私は再び進むことにしました:
QRToolsは、このブログ投稿によると、次のコードを使用して画像を簡単にデコードできます。
from qrtools import QR
myCode = QR(filename=u"/home/psutton/Documents/Python/qrcodes/qrcode.png")
if myCode.decode():
print myCode.data
print myCode.data_type
print myCode.data_to_string()
そこでsudo pip install qrtools
、を使ってインストールしてみましたが、何も見つかりません。私もでそれを試してみましたpython-qrtools
、qr-tools
、python-qrtools
カップルより多くの組み合わせが、残念ながら無駄に。私はそれが参照すると仮定し、このレポそれはZBar(上記参照)に基づいていると言います。コードをHerokuで実行したいのですが(したがって、純粋なPythonソリューションを好みます)、Linuxボックス(を使用sudo apt-get install python-qrtools
)に正常にインストールし、実行してみました。
from qrtools import QR
c = QR(filename='/home/kramer65/qrcode.jpg')
c.data # prints u'NULL'
c.data_type # prints u'text'
c.data_to_string() # prints '\xef\xbb\xbfNULL' where I expect an int (being `1234567890`)
これはそれをデコードしているように見えますが、正しく実行されていないようです。さらにZBarが必要であるため、純粋なPythonではありません。そこで、さらに別の図書館を探すことにしました。
PyXing(ここのウェブサイト)はおそらく人気のあるJavaのPythonポートです ZXingライブラリのが、最初の唯一のコミットは6年前であり、プロジェクトにはreadmeやドキュメントがまったくありません。
残りの部分については、いくつかのqr- enコーダーを見つけました(deではありません)コーダー)、あなたのためにデコードすることができ、いくつかのAPIエンドポイントを。このサービスが他のAPIエンドポイントに依存することを望まないので、デコードをローカルに保ちたいと思います。
結論として、(できれば純粋な)Pythonで画像からQRコードをデコードする方法を誰かが知っていますか?すべてのヒントは大歓迎です!