基于新老版本python opencv二维码位置读取问题解决办法。

it2026-08-14  8

基于新老版本python opencv二维码位置读取问题解决办法。

在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)

之后在识别过程中有继续遇到的问题会继续更新,希望能帮到你。

最新回复(0)