从pyzbar decode

时间:2018-03-22 08:49:06

标签: python

我正在尝试使用pyzbar模块从扫描的QR码中获取坐标。如果我使用以下代码执行此操作:

    test = decode(img)
    print(test)

我得到以下结果:

[Decoded(data = b'Part4',type ='QRCODE',rect = Rect(left = 172,top = 332,width = 75,height = 76))]

但问题是,我不知道如何提取此字符串的rect部分。我正在使用spyder,如果我去变量资源管理器尝试查看变量是如何构建的,我会收到以下错误:

AttributeError(“无法获取属性'Rect',”),

任何人都知道它会是什么?

2 个答案:

答案 0 :(得分:1)

正如您在the source code中看到的那样,Decodednamedtuple。所以你的test是一个命名元组列表。你可以得到第一个结果的矩形:

rect = test[0].rect

答案 1 :(得分:0)

还有另一种帮助方式。 您可以将数据更改为Numpy数组,并将其与OpenCV一起使用,其他库将更容易。 Exp :(导入OpenCV,Numpy库)


points = np.array(decoded_objects_by_pyzbar[0].polygon, np.int32)
cv.polylines(img,[points],True,(0,255,255),9)
cv.imshow("detected code", frame)