gpt4 book ai didi

python - 使用相机图像从 Pyzbar 检测 QR 码

转载 作者:太空宇宙 更新时间:2023-11-03 15:45:43 25 4
gpt4 key购买 nike

我在使用 Pyzbar 检测二维码时遇到问题。在完美的情况下,我能够使用原始 png 图像检测 QR 码。但是,当我从相机拍摄视频,然后将该帧保存为图像时,pyzbar 无法检测到 QR 码。

例如,这行得通

enter image description here

[Decoded(data=b'GOAL', type='QRCODE', rect=Rect(left=16, top=16, width=168, height=168))]

但即使在我手动裁剪周围环境以仅显示二维码后,以下内容也没有。

enter image description here

[]

对于这两个图像,我正在使用

decode(image, scan_locations=True)

我想知道我需要做什么才能让 pyzbar 解码我的二维码图像?

最佳答案

使用 OpenCV 将图像阈值化为黑白,然后 pyzbar 能够解码 QR 码。

首先,使用以下代码对图像进行阈值处理。

from pyzbar import pyzbar
import argparse
import numpy as np
import cv2

image =cv2.imread("QRCode.png")

# thresholds image to white in back then invert it to black in white
# try to just the BGR values of inRange to get the best result
mask = cv2.inRange(image,(0,0,0),(200,200,200))
thresholded = cv2.cvtColor(mask,cv2.COLOR_GRAY2BGR)
inverted = 255-thresholded # black-in-white

以下是处理后的图片

enter image description here

与,

barcodes = pyzbar.decode(inverted)
print (barcodes)

打印结果显示解码类型为QRCODE,数据为GOAL

[Decoded(data='GOAL', type='QRCODE', rect=Rect(left=5, top=13, width=228, height=212), 
polygon=[Point(x=5, y=222), Point(x=233, y=225), Point(x=220, y=19), Point(x=13, y=13)])]

希望这对您有所帮助。

关于python - 使用相机图像从 Pyzbar 检测 QR 码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50080949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com