在学习Python处理二维码的过程中,我们看到的大多是“用python生成酷炫二维码”、“用Python制作动图二维码”之类的文章。而关于使用Python批量识别二维码的教程,并不多见。所以今天我会给大家分享两种批量识别二维码的Python技巧!

pyzbar + PIL

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

我们在之前的文章《轻松识别数百个快递单号》,Python的第三方模块pyzbar不仅可以识别一维条形码,也可以很方便地处理二维码的识别。

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

# pip install zbar - i https: // mirrors.aliyun.com / pypi / simple

from pyzbar.pyzbar import decode

from PIL import Image

decocdeQR = decode(Image.open("D:/qrcode1.png"))

print(decocdeQR[0].data.decode('ascii'))

print("KK")

输出:123456789

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

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)

输出:123456789

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

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

Python识别二维码的两种方法(cv2)相关推荐

  1. Python识别二维码的两种方法

    人生苦短,快学Python!大家好,我是朱小五 最近在搜寻资料时,发现了一则10年前的新闻:二维码将成线上线下关键入口.从今天的移动互联网来看,支付收款码/健康码等等与我们息息相关,二维码确实成为了我 ...

  2. Java生成二维码的两种方法

    本文介绍Java生成二维码的两种方法,这两种方法都依赖于google提供的二维码依赖包. 一种是自己写工具类,代码可以网上抄. 另一种是使用hutool第三方工具类的依赖包,不用自己抄代码. 一.自定 ...

  3. 微信小程序生成二维码的两种方式

    微信小程序生成二维码的两种方式 2020/11/10 第一种,利用网络api自动生成 <image class="xin-erma" src="{{'https:/ ...

  4. python 识别二维码/条形码

    python 识别二维码/条形码 1. 安装包 pip install -y pillow -i https://mirrors.aliyun.com/pypi/simple/ pip install ...

  5. PHP开发日志 ━━ php、javascript生成二维码的三种方法

    最简单最实例的goolge开源方法 推荐手册:php完全自学手册 1.google开放api 代码如下: $urlToEncode="http://www.helloweba.com&quo ...

  6. 用new创建一个二维数组,有两种方法,是等价的

    //用new创建一个二维数组,有两种方法,是等价的      一:      int   (*p)[10]   =   new   int[5][10];      二:      int   **p ...

  7. 树莓派python识别二维码_Zbar树莓派二维码(QR)识别(基于图片)

    注意:如果二维码太小的话,zbar是很难识别的,这也是我在公司解决的问题(不然随便调用下zbar就解决问题了,图像算法工程师就没有存在的必要了,下文虽然是一个通用的解决方案,但对一般识别应用场景来说是 ...

  8. Python识别二维码条形码?用pyzbar一招搞掂(含代码)

    文章目录 原创声明 前言 一.pyzbar 是什么? 二.安装 pyzbar 1. Windows 2. Ubuntu 3.centos7 三.开始识别 代码走起: 结果: 可能出现的问题: 解决方法 ...

  9. python识别二维码条形码?用pyzbar一招搞掂(含代码)!

    原创声明 本文为 HinGwenWoong 原创,如果这篇文章对您有帮助,欢迎转载,转载请阅读文末的[授权须知],感谢您对 HinGwenWoong 文章的认可! 前言 二维码和条形码在我们的日常生活 ...

最新文章

  1. Mysql悲观锁以及乐观锁案例说明
  2. printf(%d, -10u); 这个输出什么呀, 0或1?
  3. Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configur
  4. makefile使用--命令(三)
  5. MySQL 数据库 InnoDB 和 MyISAM 数据引擎的差别
  6. 内存的字符与打印出来的字符集的区别
  7. webService学习1:myeclipse解析wsdl
  8. org.apache.maven.plugin.MojoExecutionException: protoc version is libprotoc 3.6.1, expected versio
  9. 计算机网络技术通识试题,超星计算机网络技术章节答案
  10. JavaScript跨域问题分析与总结_直来直往_百度空间
  11. 转 windows核心编程 学习笔记 目录
  12. android按钮放图片不显示文字,Android 自定义标签 Imagebutton实现ImageButton里放置文字...
  13. 鼠标指针乱跑的解决方案
  14. R语言 面板数据分析 plm包实现(三)——面板数据与面板模型的检验
  15. 关于犹太人培养小孩【转】
  16. Hadoop配置之 开启不了 8088、19888端口
  17. 尚硅谷李立超老师讲解web前端网课笔记
  18. DELL R440服务器安装Centos8.0
  19. 区块链开发编程语言整合
  20. NILM所用数据的准备

热门文章

  1. Alpha阶段项目展示
  2. 2016JavaScript之星
  3. mybatis中association的用法
  4. 百度文库怎么引流,做百度文库有哪些技巧?
  5. R-GIS: 如何用R语言实现GIS地理空间分析及模型预测
  6. [整理] BRD——MRD——PRD,产品经理三大文档概念详解及前后逻辑
  7. 进程的五种基本状态 - 操作系统
  8. unity shader中一些常用函数总结
  9. 国外破解组织宣布《星际2》破解失败
  10. 双智机器人 珠海_格力“双智多元化”成果显著 珠洽会展示核心科技