从PyZBar检测条形码导致未在图像中找到所有条形码

时间:2019-06-14 21:08:56

标签: python

我有一个带有2个1D和1个QR条码的标签。

Raw Image

我正在尝试使用PyZBar库来全部检测它们。但是,它只能找到一个代码。我想知道应该采取哪些步骤来提高检测效率。

要进行预处理,我使用GIMP添加了一个曲线层,并增加了黑色,减少了白色。

Curves layer

然后,我尝试对图像进行阈值处理和反转。

Inverted

这确实使一个代码可检测,但其他两个代码却丢失了。

Detected barcodes

代码段:

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个条形码。只有一个。

0 个答案:

没有答案