最近在查资料的时候,发现一则10年前的新闻:二维码将成为线上线下的关键入口。从移动互联网的今天来看,收款码/健康码等与我们息息相关,二维码也确实成为了我们生活中不可或缺的一部分。在学习Python处理二维码的过程中,我们看到的大多是《用Python生成炫酷二维码》、《用Python制作动画二维码》等文章。使用Python批量识别二维码的教程不多。那么今天就给大家分享一下二维码批量识别的两种Python技巧!pyzbar+PIL二维码也叫二维条码,常见的二维码是QRCode,QR的全称是QuickResponse,是移动设备上非常流行的一种编码方式。我们知道Python的第三方模块pyzbar不仅可以识别一维条码,还可以轻松搞定二维码的识别。但是pyzbar库需要配合PIL或者opencv使用,主要是使用Image.open()或者cv2.imread()来读取图像文件。在交互环境中输入以下命令:frompyzbar.pyzbarimportdecodefromPILimportImagedecocdeQR=decode(Image.open("D:/test.jpg"))print(decocdeQR[0].data.decode('ascii'))输出:这样就可以轻松实现二维码的解析和识别。cv2另外,opencv模块其实自带二维码识别功能。注1:对于opencv模块,安装时需要输入pipinstallopencv-python,导入时使用importcv2。注意2:使用opencv模块时,文件路径和图片名称不能包含中文,否则会报错。在交互环境中输入以下命令:importcv2qrcode_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)有3个返回值。其中data是解码后的内容,如我们的打印输出所示。▲二维码bbox的结构是指二维码轮廓的四个角,从左上角顺时针旋转。straight_qrcode是二维码的原始排列方式,即每个点是0还是255的矩阵,白色为255,黑色为0。有兴趣的同学可以多了解一下二维码的结构。以上就是本次分享的全部内容。觉得文章还不错的话,请关注公众号:Python编程学习圈,每日干货分享,发送“J”还能领取大量学习资料。或者去编程学习网了解更多编程技术知识。
