tensorflow 如何使用OpenCV读取货架产品条形码

8gsdolmq  于 7个月前  发布在  其他
关注(0)|答案(1)|浏览(67)

我按照本教程阅读条形码和QR码与OpenCV.下面的代码的工作原理和检测QR条形码,但我想使用条形码检测器读取条形码商店产品像这样

如果条形码整齐地打印在白色纸上或显示在大计算机屏幕上,则此代码有效。

import cv2
import numpy as np
from pyzbar.pyzbar import decode

cap = cv2.VideoCapture(0)
cap.set(3,640)
cap.set(4,480)

while True:

    success, img = cap.read()
    for barcode in decode(img):
        myData = barcode.data.decode('utf-8')
        print(myData)
    
        if myData in myDataList:
            myOutput = 'Authorized'
            myColor = (0,255,0)
        else:
            myOutput = 'Un-Authorized'
            myColor = (0, 0, 255)
    
        pts = np.array([barcode.polygon],np.int32)
        pts = pts.reshape((-1,1,2))
        cv2.polylines(img,[pts],True,myColor,5)
        pts2 = barcode.rect
        cv2.putText(img,myOutput,(pts2[0],pts2[1]),cv2.FONT_HERSHEY_SIMPLEX,
                    0.9,myColor,2)

cv2.imshow('Result',img)
cv2.waitKey(1)

字符串
如何修复代码或使用其他方法来准确读取货架产品上的条形码?

w3nuxt5m

w3nuxt5m1#

您可以做销售点扫描仪所做的事情:使用许多不同方向的线扫描产品,并查看这些线中的任何内容是否可靠地解码。
条形码有特定的时间限制(时间/边缘之间的距离不能是任意的),它们包含校验和.这就是你,或zbar,可以丢弃扫描线运行在一个对象在任意位置.你不必知道条形码在哪里.
你可以在不同的线条上对图像进行采样,并将这些采样馈送到zbar的低级接口,该接口在每次扫描时获取一系列强度值。

相关问题