pyzbar无法检测到Code93条码。

问题描述 投票:1回答:1

我试图使用库来解码Code93条码,但库无法检测到它。我看了一下源代码,显然它能够扫描这种类型的条码。是我的环境或我使用库的方式有问题吗?

我使用的是pyzbar的0.1.8版本和python 3.7.3,并使用加载。

from pyzbar import pyzbar
from pyzbar.pyzbar import ZBarSymbol

barcodes = pyzbar.decode(cv2.imread(pic_path), symbols=[ZBarSymbol.CODE93])

我正在使用的图像。

enter image description here

我知道这是可以检测到的,因为 这个 网站可以正常阅读。

enter image description here

python linux zbar
1个回答
0
投票

你使用的库是OK的,但是你的图像需要进行一些预处理,使条码可读。 你需要增加黑白条之间的对比度,这可以在将图像传递给pyzbar之前使用阈值过滤器对图像进行二值化。 这个例子,使用OpenCV库,对我来说,对你的样本图像是有效的。

import cv2
from pyzbar.pyzbar import decode
from pyzbar.pyzbar import ZBarSymbol

pic_path = "UNENg.png"
# preprocessing using opencv
im = cv2.imread(pic_path, cv2.IMREAD_GRAYSCALE)
ret, bw_im = cv2.threshold(im, 127, 255, cv2.THRESH_BINARY)
# zbar
barcodes = decode(bw_im, symbols=[ZBarSymbol.CODE93])

在你的回答中,有一些可供选择的预处理方法。在python中对QR检测的图像进行预处理 这可能也是有帮助的。

© www.soinside.com 2019 - 2024. All rights reserved.