最近在搜查材料时,发现了一则 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”还可支付大量学习材料。或是返回编程学习网,理解更多编程技术常识。