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