微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我的某些二维码没有显示二维码数据

如何解决我的某些二维码没有显示二维码数据

我正在开发我自己的小型 Python 驱动的 omr 多项选择标记程序。对我来说是一个巨大的挑战!!

第一步是为每个学生创建二维码。这工作正常,我为 1 个课程生成了 162 个二维码

我想检查它们,确保数据在代码中。

数据应该是这样的,一个学号和一个名字:

2025010105:段赵元
2025010106:段卓含

2025010108:范玉虹

如您所见,例如,学生 2025010107 的数据未显示在我的循环中。但是,用我的手机扫描二维码2025010107,我看到了正确的数据。数据就在那里。

QRfiles = os.listdir(savepathQRcodes)
QRfiles.sort()

for f in QRfiles:
    img = cv2.imread(savepathQRcodes + f)
    detector = cv2.QRCodeDetector()
    data,bBox,straight_qrcode = detector.detectAndDecode(img)
    #text = data.split(':')
    #print('number,name: ',text[0],text[1])
    print(data)

您知道为什么某些二维码的数据不显示吗?数据在那里,用我的手机确认过。(我猜是电脑内存问题)

从 162 个二维码中,有 20 个左右不显示此循环中的数据。大部分二维码显示了这个循环中的数据。

但是,如果我打开带有二维码文件夹,我可以用手机扫描不显示数据的二维码,然后看到正确的数据。我制作的所有其他二维码也是如此。

我在做标记时需要数据,所以我需要确保可以在 Python 中成功读取二维码

此外,不显示任何数据的二维码并不总是相同的。我制作了它们并多次阅读以进行测试。

我有最新版本的 opencv。

我注意到的一件事是,当我将 qr 代码边框大小减小到 border=1 时,我得到的代码更少了,没有显示数据。我不知道这是否是问题的线索。

解决方法

也许你可以尝试添加一个循环?

for f in QRfiles:
    img = cv2.imread(savepathQRcodes + f)
    detector = cv2.QRCodeDetector()
    data = None
    while not data:
        data,bbox,straight_qrcode = detector.detectAndDecode(img)
    #text = data.split(':')
    #print('number,name: ',text[0],text[1])
    print(data)

或者数据=='',所以首先确定空白数据中的内容(可能是None类型或' ')然后循环

这可能是一个可能的解决方法,但不幸的是我不知道是什么原因造成的。如果它发生在随机二维码上,那可能不是你的错。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?