Python识别二维码的两种方法(cv2)
在学习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)相关推荐
- Python识别二维码的两种方法
人生苦短,快学Python!大家好,我是朱小五 最近在搜寻资料时,发现了一则10年前的新闻:二维码将成线上线下关键入口.从今天的移动互联网来看,支付收款码/健康码等等与我们息息相关,二维码确实成为了我 ...
- Java生成二维码的两种方法
本文介绍Java生成二维码的两种方法,这两种方法都依赖于google提供的二维码依赖包. 一种是自己写工具类,代码可以网上抄. 另一种是使用hutool第三方工具类的依赖包,不用自己抄代码. 一.自定 ...
- 微信小程序生成二维码的两种方式
微信小程序生成二维码的两种方式 2020/11/10 第一种,利用网络api自动生成 <image class="xin-erma" src="{{'https:/ ...
- python 识别二维码/条形码
python 识别二维码/条形码 1. 安装包 pip install -y pillow -i https://mirrors.aliyun.com/pypi/simple/ pip install ...
- PHP开发日志 ━━ php、javascript生成二维码的三种方法
最简单最实例的goolge开源方法 推荐手册:php完全自学手册 1.google开放api 代码如下: $urlToEncode="http://www.helloweba.com&quo ...
- 用new创建一个二维数组,有两种方法,是等价的
//用new创建一个二维数组,有两种方法,是等价的 一: int (*p)[10] = new int[5][10]; 二: int **p ...
- 树莓派python识别二维码_Zbar树莓派二维码(QR)识别(基于图片)
注意:如果二维码太小的话,zbar是很难识别的,这也是我在公司解决的问题(不然随便调用下zbar就解决问题了,图像算法工程师就没有存在的必要了,下文虽然是一个通用的解决方案,但对一般识别应用场景来说是 ...
- Python识别二维码条形码?用pyzbar一招搞掂(含代码)
文章目录 原创声明 前言 一.pyzbar 是什么? 二.安装 pyzbar 1. Windows 2. Ubuntu 3.centos7 三.开始识别 代码走起: 结果: 可能出现的问题: 解决方法 ...
- python识别二维码条形码?用pyzbar一招搞掂(含代码)!
原创声明 本文为 HinGwenWoong 原创,如果这篇文章对您有帮助,欢迎转载,转载请阅读文末的[授权须知],感谢您对 HinGwenWoong 文章的认可! 前言 二维码和条形码在我们的日常生活 ...
最新文章
- Mysql悲观锁以及乐观锁案例说明
- printf(%d, -10u); 这个输出什么呀, 0或1?
- Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configur
- makefile使用--命令(三)
- MySQL 数据库 InnoDB 和 MyISAM 数据引擎的差别
- 内存的字符与打印出来的字符集的区别
- webService学习1:myeclipse解析wsdl
- org.apache.maven.plugin.MojoExecutionException: protoc version is libprotoc 3.6.1, expected versio
- 计算机网络技术通识试题,超星计算机网络技术章节答案
- JavaScript跨域问题分析与总结_直来直往_百度空间
- 转 windows核心编程 学习笔记 目录
- android按钮放图片不显示文字,Android 自定义标签 Imagebutton实现ImageButton里放置文字...
- 鼠标指针乱跑的解决方案
- R语言 面板数据分析 plm包实现(三)——面板数据与面板模型的检验
- 关于犹太人培养小孩【转】
- Hadoop配置之 开启不了 8088、19888端口
- 尚硅谷李立超老师讲解web前端网课笔记
- DELL R440服务器安装Centos8.0
- 区块链开发编程语言整合
- NILM所用数据的准备