TL; DR:我需要一種方法來使用(更好的純Python)從圖像文件中解碼QR碼。如何解碼(最好是純Python)的QR碼圖像?
我有一個QR碼的jpg文件,我想用Python進行解碼。我發現,聲稱這樣做一對夫婦庫:
PyQRCode(website here),據稱可以通過簡單地提供這樣的路徑譯碼從圖像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
雖然)因爲我認爲qrcode
指this library哪些只能生成 qr-code圖像它讓我感到困惑。所以我試着用pyqrcode
和qrcode
上面的代碼,但都在第二行說AttributeError: 'module' object has no attribute 'Decoder'
失敗。此外,the website是指Ubuntu 8.10(6年前發佈的),我無法找到它的公共(git或其他)存儲庫來檢查最新的提交。讓我感動到下一個庫:
zbar和(website here)聲稱自己是"an open source software suite for reading bar codes from various sources, such as image files."
所以,我想在Mac OSX上運行sudo pip install zbar
安裝。這與error: command 'cc' failed with exit status 1
失敗。我試圖在this SO question的答案中提出建議,但我似乎無法解決它。所以我決定再前進:
QRTools,它根據this blogpost可以使用下面的代碼輕鬆解碼圖像:
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
和幾個組合,但不幸的是無濟於事。我想它指的是this repo,它說它是基於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(website here)是所謂的流行的Java ZXing library的一個Python端口,但最初只有承諾是6歲和項目沒有自述或文件任何責任。
對於剩下的我發現一對夫婦QR-EN編碼器(未德編碼器),並且能爲你解碼一些API端點。因爲我不喜歡這個服務依賴於其他API端點,所以我想保留解碼本地。
所以得出結論;有人會知道我怎樣才能解碼來自(更好的純Python)圖像的QR碼?歡迎所有提示!
它應該是:「如果myCode.decode(「/家/ kramer65 ')'而不是 'QR(filename ='/ home/kramer65/qrcode.jpg')' – 2016-04-20 21:09:41
我覺得值得一提的是** @ kramer65 **提出的關於安裝' zip'與'pip':http://stackoverflow.com/questions/27406641/how-to-install-python-bindings-originating-from-an-a pt-package – Nez 2016-06-01 18:09:36