Python实现扫码工具

二维码作为一种信息传递的工具,在当今社会发挥了重要作用。从手机用户登录到手机支付,生活的各个角落都能看到二维码的存在。那你知道二维码是怎么解析的吗?有想过自己实现一个扫码工具吗?如果想的话就继续看下去吧!

一、案例分析

我们先思考一下,实现扫码工具需要写什么操作。在扫码过程中我们需要打开摄像头,如何由手机或者电脑识别二维码。所以我们要实现两个关键的步骤:调用摄像头、识别二维码。

这两个操作分别对应了两个模块,它们就是opencv和pyzbar,其中opencv是英特尔的计算机视觉处理模块,而pyzbar则是用于解析二维码的模块。

很多人学习python,不知道从何学起。

很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。

很多已经做案例的人,却不知道如何去学习更加高深的知识。

那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!

QQ群:1156465813

二、环境

环境包括python环境和模块。我的环境如下:

系统:Windows 10

python:python 3.7.9

opencv:opencv-python-4.4.0.44

pyzbar:pyzbar-0.1.8

模块安装很简单,我们直接用pip安装,先安装opencv模块:

pip install opencv-python

然后是pyzbar模块:

pip install pyzbar

在未指定安装版本时,系统会自动安装最新版。安装好模块后,我们就可以来实现扫码工具了。

三、识别二维码

有了pyzbar模块后,我们识别二维码的工作就非常简单了,首先需要准备一张二维码。有了二维码后就可以开始解析了,具体步骤如下:

1.读取二维码图片2.解析二维码中的数据3.在解析出的数据中提取data信息

实现代码如下:

在上面我们解析了两次,第一次获取了一个data,我们先来看看data长什么样子:

可以看到是一个列表,而且列表的第一个数据包含url的信息。所以我们需要通过下面的代码再次解析:

这样我们就能拿到二维码中包含的信息了。为了方便后续使用,可以将上面的代码写成一个函数:

接下来我们再看看如何调用摄像头。

四、调用摄像头

在opencv中提供了一个VideoCapture类用于读取视频,同样可以用来调用摄像头。调用摄像头的步骤如下:

1.调用摄像头2.循环3.在循环内读取一帧画面4.显示当前读取的画面5.等待键盘输入6.判断是否按退出键q7.按了退出键则退出,没按则继续循环

具体代码如下:

你们可以自己尝试运行一下上面的代码,效果就像是打开了自己的前置摄像头。

现在调用了摄像头,我们可以把两部分的代码结合起来。

五、实现扫码工具

我们扫码工具的主体部分是调用摄像头的操作,我们需要对读取到的每一帧画面进行解析,当解析出结果后输出并退出。具体代码如下:

上面我们把scan_qrcode函数修改了一下,从原来的传入图片路径到直接传入图片对象。因为通过VideoCapture对象获取的图片帧和通过cv2.imread获取的图片是同一数据类型。

上面关键步骤在解析二维码的操作。首先定义一个text,因为解析过程中如果没有二维码会出现异常,所以用try-except语句处理。如何通过if判断text的内容,只有当我们真正解析到了数据,程序才会输出结果,并退出程序。

到这里,我们就实现了扫码工具。

以下内容无用,为本篇博客被搜索引擎抓取使用

(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)

python 是干什么的 零基础学 python 要多久 python 为什么叫爬虫

python 爬虫菜鸟教程 python 爬虫万能代码 python 爬虫怎么挣钱

python 基础教程 网络爬虫 python python 爬虫经典例子

python 爬虫

(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)

以上内容无用,为本篇博客被搜索引擎抓取使用

如何用python做二维码识别软件_Python什么都能做(一)用 Python 做一个扫码工具...相关推荐

  1. python求二维数组各行最大值_python+numpy按行求一个二维数组的最大值方法

    问题描述: 给定一个二维数组,求每一行的最大值 返回一个列向量 如: 给定数组[1,2,3:4,5,3] 返回[3:5] import numpy as np x = np.array([[1,2,3 ...

  2. python创建二维数组的方法_Python创建二维数组的正确姿势

    本文原创发布于微信公众号「极客猴」,欢迎关注第一时间获取更多原创分享 List (列表)是 Python 中最基本的数据结构.在用法上,它有点类似数组,因为每个列表都有一个下标,下标从 0 开始.因此 ...

  3. Python什么都能做(一)用 Python 做一个扫码工具

    Python实现扫码工具 二维码作为一种信息传递的工具,在当今社会发挥了重要作用.从手机用户登录到手机支付,生活的各个角落都能看到二维码的存在.那你知道二维码是怎么解析的吗?有想过自己实现一个扫码工具 ...

  4. python实战扫码下载_实例:用 Python 做一个扫码工具

    原标题:实例:用 Python 做一个扫码工具 来自公众号: 新建文件夹X 链接:https://blog.csdn.net/ZackSock/article/details/108610957Pyt ...

  5. 二维条码识别系统设计原理

    首     页 条码控件 条码技术 条码新闻 合作伙伴 联系我们 常见问题 电话:010-84827961 当前位置:条形码控件网 > 条形码控件技术文章 > >正文 二维条码识别系 ...

  6. python解析二维码_Python如何识别二维码

    最近呢,知乎发表了一个报告说,安全防护系统全面升级了(是小管家说的). 现在内容中的二维码会被自动替换为相应的链接,并缀以"(二维码自动识别)"字样. 今天就来看,如何用Pytho ...

  7. 如何用Python生成二维码

    使用Python做二维码需要一个非常简单的模块--MyQR,这个模块相比于QRcode更加简单,功能也是特别强大,下面介绍一种生成简单二维码的方式. 安装方式 利用pip安装. 使用方式 首先导入. ...

  8. python可以做二维码吗_Python制作二维码真的这么简单?

    今天在最大的交友社区GitHub上发现了一个比较有意思的项目,无论你是什么操作系统,只需要一行代码就可以很方便的生成二维码.包括普通二维码.艺术二维码(黑白/彩色).动态gif二维码都可以制作,用法比 ...

  9. 使用python开发二维码识别功能、Docker镜像安装opencv-contrib-python、

    使用python开发二维码识别功能.Docker镜像安装opencv-contrib-python. 背景 开发二维码识别功能,使用到开源三方库opencv-contrib-python. 在使用do ...

最新文章

  1. 大学计算机html,编程基础(C+VB+HTML)(辅)19级计算机
  2. Linux命令应用大词典-第1章 登录、退出、关机和重启
  3. [转载]Oracle ltrim() 函数用法
  4. VS.NET 2005 BETA 2 NOT DELAYED?
  5. 如何将手机投屏到电脑_使用向日葵软件如何将手机投屏到电脑上
  6. Springmvc与jasperreport结合生成报表的一种方法
  7. 列表: ul/ol/dl - bootStrap4常用CSS笔记
  8. redis客户端工具redis-insight推荐
  9. 用c#实现 catia插件speos的部分功能
  10. iOS Charles(青花瓷)安装
  11. 如何申请美国、加拿大、英国的电话号码
  12. 中国5级行政区域MySQL数据库库
  13. 一场精彩的比赛——2019年ACM新生赛
  14. vs+qt 设置应用程序图标
  15. wannier拟合能带总是拟合不上_中科大PRL:面内磁化的本征量子反常霍尔效应:搜索规则和材料预测...
  16. 人机对话_javaweb_ 一对一聊天系统
  17. 辐射度算法(radiosity)原理
  18. 泪目:我看不清你的脸,可我知道你在守护我平安
  19. 构建 WCF 路由器 part 2 from MSDN
  20. Cannot assign requested address解决办法

热门文章

  1. 肠道健康从核心菌属开始:肠道菌群的关键
  2. Selenium图片下载到本地的实例
  3. 记一次让自家旧主板支持M2接口固态硬盘的折腾记录
  4. 【CV】第 8 章:语义分割和神经风格迁移
  5. Apipost让您轻松完成接口测试及接口文档,告别加班
  6. lottie.js动画的使用(JSON动画)
  7. Labview2019+python3.6实现人脸识别(一)
  8. 百度api智能识别图片
  9. 【DirectX11】第十篇 其他灯光类型——点光源
  10. java基础案例教程答案,2021最新版!