代码:
import zxing
from PIL import Image
reader = zxing.BarCodeReader()
path = 'C:/Users/UI UX/Desktop/Uasa.png'
im = Image.open(path)
barcode = reader.decode(path)
print(barcode)
当我使用上面的代码工作正常,并返回结果:条形码(原始='P〈E ....
我需要使用此代码:
import zxing
import cv2
reader = zxing.BarCodeReader()
path = 'C:/Users/UI UX/Desktop/Uasa.png'
img = cv2.imread (path)
cv2.imshow('img', img)
cv2.waitKey(0)
barcode = reader.decode(img)
print(barcode)
但是这段代码返回一个错误:TypeError:应为字符串、字节或操作数。PathLike对象,而不是numpy.ndarray
在另一个程序中,我在base64的图像可以帮助我在这里的某个地方?
有人能帮我吗
4条答案
按热度按时间yi0zb3m41#
ZXing不支持直接传递图像,因为它使用外部应用程序来处理条形码图像。如果您不限于使用ZXing库来解码PDF417条形码,您可以查看PyPI包pdf417decoder。
如果像示例中那样从Numpy数组开始,则必须首先将其转换为PIL图像。
pengsaosao2#
如果你看一下源代码,你会发现它所做的是用提供的路径调用一个java应用程序(具体来说是
com.google.zxing.client.j2se.CommandLineRunner
)。如果你需要预处理你的图像,那么你将不得不把它保存在某个地方,并把它的路径传递给你的库
hgqdbh6s3#
我通过以下方式解决此问题:
roqulrg34#
zxing包不推荐使用,它只是一个调用Java ZXing库的命令行工具。
应该使用zxing-cpp,这是用中兴C++代码构建的Python模块,下面是示例代码: