在opencv4.4版本以及之前,解码得到数据分别为
data,bbox,straight_qrcode = detector.detectAndDecode(img) #data 二维码里的数据 #bbox 二维码的四个边角的位置 #straight_qrcode 二维码数据生成的二进制格式但在我在之前opencv4.2,qrcode5.3版本读取bbox的时候使用的是如下代码
n_lines = len(bbox) for i in range(n_lines): point1 = tuple(bbox[i][0]) point2 = tuple(bbox[(i+1)%n_lines][0]) cv2.line(img,point1,point2,color=(0,255,0),thickness=2)这样可以获得四个点的位置也能直接框选出二维码,但在更新到opencv4.4,qrcpde6.1版本之后并不能正常使用并框选出二维码位置,只会选出一个点。 之后我查看了bbox数据类型发现bbox数据变成了三维矩阵 以下是经过修改后的代码可以正常获得图像
if bbox is not None: print(f"二维码的数据是{data}") n_lines = len(bbox[0]) for i in range(n_lines): point1 = tuple(bbox[0][i]) point2 = tuple(bbox[0][(i+1)%n_lines]) cv2.line(img,point1,point2,color=(255,0,0),thickness=2)之后在识别过程中有继续遇到的问题会继续更新,希望能帮到你。
