我有一个带有2个1D和1个QR条码的标签。
我正在尝试使用PyZBar库来全部检测它们。但是,它只能找到一个代码。我想知道应该采取哪些步骤来提高检测效率。
要进行预处理,我使用GIMP添加了一个曲线层,并增加了黑色,减少了白色。
然后,我尝试对图像进行阈值处理和反转。
这确实使一个代码可检测,但其他两个代码却丢失了。
代码段:
img = cv2.imread("Untitled.png")
mask = cv2.inRange(img,(0,0,0),(200,200,200))
thresholded = cv2.cvtColor(mask,cv2.COLOR_GRAY2BGR)
inverted = 255-thresholded # black-in-white
cv2.imwrite("IMGInverted.jpg",inverted)
barcodes = pyzbar.decode(inverted)
for i,barcode in enumerate(barcodes):
print 'Processing barcode ' + str(i)
(x,y,w,h) = barcode.rect
cv2.rectangle(img, (x,y), (x+w,y+h), (0,0,255), 2)
print "Found {0} barcode {1}".format(barcode.data.decode("utf-8"),barcode.type)
cv2.imwrite('IMGDetectedBC.jpg',img)
我希望可以检测到3个条形码。只有一个。