关于python:Python识别二维码的两种方法

0次阅读

共计 1238 个字符,预计需要花费 4 分钟才能阅读完成。

最近在搜查材料时,发现了一则 10 年前的新闻:二维码将成线上线下要害入口。从明天的挪动互联网来看,领取收款码 / 衰弱码等等与咱们非亲非故,二维码的确成为了咱们生存中不可或缺的一部分。

在学习 Python 解决二维码的过程中,咱们看到的大多是“用 python 生成酷炫二维码”、“用 Python 制作动图二维码”之类的文章。而对于应用 Python 批量辨认二维码 的教程,并不多见。所以明天我会给大家分享两种批量辨认二维码的 Python 技巧!

pyzbar + PIL

二维码又称二维条码,常见的二维码为 QR Code,QR 全称 Quick Response,是一个挪动设施上超风行的一种编码方式。

咱们晓得,Python 的第三方模块 pyzbar 不仅能够辨认一维条形码,也能够很不便地解决二维码的辨认。

不过 pyzbar 库须要搭配 PIL 或者 opencv 应用,次要是为了利用 Image.open() 或者 cv2.imread() 来读取图片文件。

在交互式环境中输出如下命令:

from pyzbar.pyzbar import decode
from PIL import Image
decocdeQR = decode(Image.open("D:/test.jpg"))
print(decocdeQR[0].data.decode('ascii'))

输入:

这样就轻松实现了二维码的解析与辨认。

cv2

另外,opencv 模块其实自带二维码辨认性能。

注 1:对于 opencv 模块,装置时须要输出pip install opencv-python,但在导入的时候采纳import cv2

注 2:应用 opencv 模块时,文件门路、图片名称都不要蕴含中文,否则会报错。

在交互式环境中输出如下命令:

import cv2

qrcode_filename = "D:/test.jpg"
qrcode_image = cv2.imread(qrcode_filename)
qrCodeDetector = cv2.QRCodeDetector()
data, bbox, straight_qrcode = qrCodeDetector.detectAndDecode(qrcode_image)

print(data)

输入:

如上所示,咱们同样实现了二维码的解析与辨认。在上述代码中,第四行代码中 qrCodeDetector.detectAndDecode(qrcode_image) 有三个返回值。其中 data 是解码后的内容,如咱们打印输出后果所示。

▲ 二维码的构造

bbox 是指二维码轮廓的四个角,从左上角顺时针转的。而 straight_qrcode 是二维码的原始排列,也就是每个点是 0 还是 255 的一个矩阵,红色是 255,彩色是 0。

感兴趣的同学能够具体理解更多的二维码的构造。

以上就是本次分享的所有内容,如果你感觉文章还不错,欢送关注公众号:Python 编程学习圈,每日干货分享,发送“J”还可支付大量学习材料。或是返回编程学习网,理解更多编程技术常识。

正文完
 0