Python如何捕获检测到的二维码?
我正在使用PythoN(3.7)和OpenCV进行一个项目,在该项目中,我必须从图像/直播流中检测二维码,然后我需要将检测到的二维码作为一个单独的图像,该二维码保持该二维码图像的大小,所以我需要把它作为一个单独的图像拿出来,并将它的大小与这个二维码图像的解码大小进行比较 更新: 这里是我拥有的:我有一个文档图像,上面有一个二维码 它。实际上,此二维码将包含以下信息: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) 以下是我想要实现的目标:
- 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我添加了一个示例输入和输出图像,请看一看!