我正在尝试使用pyzbar构建一个实时条形码阅读器。我只有EAN-13条形码,其中一些被正确读取,但有些被确认为PDF417,我得到了这样的信息:警告:.\zbar\decoder\pdf417.c:89::断言"g >= 0& g1 >= 0& g2 >= 0“失败如何提高效率?也许还有另一个我可以使用的python库?
这是我的密码:
import cv2
import numpy as np
from pyzbar.pyzbar import decode
def decoder(image):
imgGray = cv2.cvtColor(image,0)
barcodes = decode(imgGray)
for barcode in barcodes:
(x, y, w, h) = barcode.rect
cv2.rectangle(imgGray, (x-10, y-10),
(x + w+10, y + h+10),
(255, 0, 0), 2)
if barcode.data!="":
print("Barcode: ", barcode.data)
print(barcode.type)
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
decoder(frame)
cv2.imshow('Image', frame)
code = cv2.waitKey(10)
if code == ord('q'):
break发布于 2021-05-07 13:57:55
如果您只有EAN-13,那么可以指定pyzbar只检查EAN-13。在调用symbols时,可以将所需的代码在列表中指定给参数decode(...)。
from pyzbar.pyzbar import decode, ZBarSymbol
import cv2
image = cv2.imread("testImage.png")
decode(image, symbols=[ZBarSymbol.ZBAR_EAN13])(从内存中编写的代码,如果符号不完全正确,很抱歉)
另一个要测试的库是中兴。在我的测试中,zxing比zbar慢得多,但得到了更好的结果。
https://stackoverflow.com/questions/67436051
复制相似问题