当前位置: 首页 > news >正文

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。

http://www.lryc.cn/news/23965.html

相关文章:

  • 用一个例子告诉你 怎样使用Spark中RDD的算子
  • 什么是跨域? 出现原因及解决方法
  • 低代码系统能够解决哪些痛点?
  • 华为OD机试题,用 Java 解【两数之和绝对值最小】问题
  • AcWing算法提高课-3.1.1热浪
  • 华为OD机试题【最差产品奖】用 C++ 编码,速通 (2023.Q1)
  • NFT市场大战:Blur市场地位可持续吗?
  • 初识CSS
  • kubernetes(k8s)知识总结(第3期)
  • 浅谈跨境电商运行模式
  • Memcached
  • Unity UGUI 拖拽组件
  • 面试总结——react生命周期
  • 初探推荐系统-01
  • html实现浪漫的爱情日记(附源码)
  • detectron2容器环境安装问题(1)
  • JAVA线程池原理详解二
  • Java 常用 API
  • 记一次分布式环境下TOKEN实现用户登录
  • 用cpolar发布本地的论坛网站 1
  • CSS的4种引入方式
  • Shell高级——Linux中的文件描述符(本质是数组的下标)
  • Nvidia jetson nano硬件架构
  • ffmpeg多路同时推流
  • 一次性搞定 `SHOW SLAVE STATUS` 的解读
  • 【代码随想录训练营】【Day25】第七章|回溯算法 |216.组合总和III|17.电话号码的字母组合
  • docker使用
  • 手把手docker registry配置登录名/密码
  • 一步打通多渠道服务场景 中电金信源启移动开发平台MADP功能“上新”
  • Kubernetes06:Controller (Deployment无状态应用)