Python如何捕获检测到的二维码?

Python如何捕获检测到的二维码?,python,python-3.x,opencv,qr-code,opencv-python,Python,Python 3.x,Opencv,Qr Code,Opencv Python,我正在使用PythoN(3.7)和OpenCV进行一个项目,在该项目中,我必须从图像/直播流中检测二维码,然后我需要将检测到的二维码作为一个单独的图像,该二维码保持该二维码图像的大小,所以我需要把它作为一个单独的图像拿出来,并将它的大小与这个二维码图像的解码大小进行比较 更新: 这里是我拥有的:我有一个文档图像,上面有一个二维码 它。实际上,此二维码将包含以下信息: 4个变量(顶部、右侧、底部、左侧) 二维码的图像大小(例如10px表示二维码图像为10x10px) 以下是我想要实现的目标:

我正在使用PythoN(3.7)和OpenCV进行一个项目,在该项目中,我必须从图像/直播流中检测二维码,然后我需要将检测到的二维码作为一个单独的图像,该二维码保持该二维码图像的大小,所以我需要把它作为一个单独的图像拿出来,并将它的大小与这个二维码图像的解码大小进行比较

更新:

这里是我拥有的:我有一个文档图像,上面有一个二维码 它。实际上,此二维码将包含以下信息:

  • 4个变量(顶部、右侧、底部、左侧)
  • 二维码的图像大小(例如10px表示二维码图像为10x10px)
以下是我想要实现的目标:

  • 我想检测二维码并解码(解码时我会得到它的图像大小)
  • 然后我必须将QR码检测(突出显示区域)保存为单独的裁剪图像
  • 最后,我需要将裁剪后的图像大小与QR码大小(解码后得到)进行比较

以下是一个输入和输出图像示例:

输入:

输出:

我已经完成了二维码检测,但我如何才能将这个特定区域捕获为一张清晰的图像,并将其大小与二维码中的另一个大小进行比较

以下是我迄今为止所做的工作:

import cv2


# read the image
image = cv2.imread('/Users/abdul/PycharmProjects/QScanner/images/second.jpg')

qrCodeDetector = cv2.QRCodeDetector()
decodedText, points, _ = qrCodeDetector.detectAndDecode(image)
qr_data = decodedText.split(',')
qr_size = qr_data[0]
top = qr_data[1]
right = qr_data[2]
bottom = qr_data[3]
left = qr_data[4]

print(f'Size: {qr_size}' + str(qr_data[5]))
print(f'Top: {top}')
print(f'Right: {right}')
print(f'Bottom: {bottom}')
print(f'Left: {left}')
if points is not None:
    pts = len(points)
    print(pts)
    for i in range(pts):
        nextPointIndex = (i+1) % pts
        cv2.line(image, tuple(points[i][0]), tuple(points[nextPointIndex][0]), (255,0,0), 5)
        print(points[i][0])

    print(decodedText)    

    cv2.imshow("Image", image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()


else:
    print("QR code not detected")

你的第一句话太长了,听不懂!你能把它分成2-3个短的吗?此外,图像也会很有用。谢谢。@MarkSetchell我已经添加了一个更新,希望它现在会更清晰。仍然不是很清晰!你在我们看不到的文档上有一个二维码,该二维码告诉你二维码有多大?所以你需要找到二维码并阅读二维码来计算二维码有多大?很抱歉我不明白。听起来不可能。。。你需要看看一扇关着的门后面有什么,这样你就不用打开它就能知道里面有什么了?请只显示图像及其编码。请添加一个示例输入图像和可能的输出图像,以便我们可以在上面进行实验:)@MarkSetchell我添加了一个示例输入和输出图像,请看一看!