Декодирование Python-ZXING возвращает пустые данные

Я пытаюсь декодировать данные кода qr или ацтеков с помощью Python-zxing. Каждый раз, когда я получаю пустые данные без ошибок в Python Shell. Что я делаю не так?

import zxing
image = "aztec.png"

rd = zxing.BarCodeReader()
rs = rd.decode(image)
print rs.data
print rs

Выход:

''
<zxing.BarCode instance at 0x0312A260>

Python ver. 2.7.11 (Windows)

PS Когда я запускаю скрипт из cmd, у меня появляется сообщение:

Исключение в потоке "main" java.lang.NoClassDefFoundError: com/google/zxing/client/j2se/CommandLineRunner

1 ответ

Вы забыли о наследовании классов. Смотри ниже. Ответ сделан совместимым с python 3; а если серьезно... это не лучший способ сделать это. Для долгосрочной совместимости вы должны проверять, управляя версиями и используя оператор if.

image = "aztec.png"

zxing = zxing() # notice zxhing()

rd = zxing.BarCodeReader()   
rs = rd.decode(image)
try:
    print (rs.data)
    print (rs)
except:
    print (rs.data)
    print (rs)

Предполагая, что установка mvn Zxing верна, добавьте путь к папке Zxing при создании экземпляра устройства чтения (в данном случае "rd")

rd = zxing.BarCodeReader("/path/to/zxing")

К вашему сведению: я запускаю его на Raspbian, а не на Windows, но с той же ошибкой.

print(rs.raw)  # This returns the decoded text.

Вы также можете использовать rs.parsed.

print(rs.format)  # This returns the Format like the detected one is DataMatrix. QR Code etc.

print(rs.points)  # This returns the boundary of points where its detected. 
Другие вопросы по тегам