我正在尝试使用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',”),
任何人都知道它会是什么?
答案 0 :(得分:1)
正如您在the source code中看到的那样,Decoded
是namedtuple。所以你的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)