【问题标题】:How to detect top edge of QR code in Python and pyzbar如何在 Python 和 pyzbar 中检测 QR 码的顶部边缘
【发布时间】:2018-10-06 11:01:39
【问题描述】:

我正在使用 pyzbar + opencv 来检测二维码。我需要在 QR 码的顶部边缘绘制一些东西以进行打印。我知道 pyzbar 可以检测 QR 码的边界框,但很难知道哪个边缘是顶部。

有什么建议吗?

需要像这些示例一样检测顶部边缘:

【问题讨论】:

    标签: python opencv qr-code


    【解决方案1】:

    如果顶部边缘始终以边缘中的矩形开始和结束,您可以尝试使用cv2.contour 检测图像中两个矩形的位置,然后使用cv2.line 在两条边缘之间画线

    Use this great tutorial 检测边缘中的正方形,然后获取每个的起始 x,y 点

    如果你遇到困难,我希望我能帮助你,请告诉我,我会尽力帮助你

    【讨论】:

      【解决方案2】:

      如果您想要正确识别、旋转和缩放您的 QR 图片,您需要执行以下任务:

      (你需要两种技术的结合)

      • 第一步:检测每个二维码4个角的x,y坐标。 Python 库 zbar 对此很有用:

      print(symbol.location) 给出坐标。

      • 第二步:现在需要校正/透视校正/“单应性”。以下是使用 Python + OpenCV 的方法。

      【讨论】:

        【解决方案3】:

        我知道这是一个老问题,但也许它会在未来帮助某人:

        • PyZbar 可以很好地检测 QR 码(提供几乎完美的 QR 码角位置),但您无法获得 QR 码顶部位置的信息
        • OpenCV 在我的测试中不是那么好,但它返回一个角点列表 [左上角、右上角、右下角、左下角]。它没有记录在案的行为,但它总是这样工作。

        [用 opencv-python==4.5.5.62 测试]

        【讨论】:

          猜你喜欢
          • 2021-03-01
          • 2022-06-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-06
          • 1970-01-01
          • 2016-12-14
          相关资源
          最近更新 更多