10行代码识别二维码

简介:

二维码现在已深入到我们生活的方方面面了,手机支付、微信加好友、app下载、电子票务等方方面面都有它的身影。最近坐地铁又推出了扫二维码进出站。

最近一段时间,上海的很多地铁检票机器都装上了像下面这样的二维码扫描器

1f241568ad1c1879a39ef825623e98133d57db71

只需打开手机app上的二维码,对准扫描窗口扫一扫,就可以进站,到站后再扫一扫,就可以出站并自动扣款。

今天我们就来用Python实现一个简单的识别二维码的程序。

准备工作

识别二维码需要用到zbar,首先安装libzbar0,以Ubuntu为例

 

sudo apt-get install libzbar0

接着安装pyzbar和opencv

 

pip install pyzbar
pip install opencv-python

代码实现

接下来是我们的代码实现部分了,可以看到代码非常简单。

 

# -*- coding: utf-8 -*-# filename: read_qrcode.py import sys from pyzbar.pyzbar
import decode import cv2
if len(sys.argv) < 2 :
print "Usage: %s <image file>" % sys.argv[ 0 ]
sys.exit( 1 )
filepath = sys.argv[ 1 ]
image=cv2.imread(filepath) # 读入图片
result = decode(image) # 解码二维码 for item in result:
print item.type, item.data # 打印解码的数据

原文发布时间为:2018-11-7
本文作者:强哥
本文来自云栖社区合作伙伴“ Python爱好者社区”,了解相关信息可以关注“ Python爱好者社区”。
相关文章
|
前端开发 JavaScript C++
打造卓越 QML 层级设计:从入门到精通(一)
打造卓越 QML 层级设计:从入门到精通
3653 1
|
监控 开发者 UED
QLineEdit:textChanged、textedited区别
总之,理解 `textChanged`与 `textEdited`之间的细微差别,可以帮助开发者更加精准地控制用户界面的响应逻辑,提升应用程序的互动性和效率。
544 3
|
搜索推荐 应用服务中间件 nginx
Nginx系列教程(05) - 虚拟主机配置
Nginx系列教程(05) - 虚拟主机配置
1082 0
|
存储 缓存 负载均衡
NGINX 性能调优的五大技巧
【8月更文挑战第27天】
435 5
|
API 开发工具 开发者
抖音商品详情API入门:为开发者和商家打造增长工具箱
抖音商品详情API入门:为开发者和商家打造增长工具箱
Nest.js 实战 (十二):优雅地使用事件发布/订阅模块 Event Emitter
这篇文章介绍了在Nest.js构建应用时,如何通过事件/发布-订阅模式使应用程序更健壮、灵活、易于扩展,并简化服务间通信。文章主要围绕@nestjs/event-emitter模块展开,这是一个基于eventemitter2库的社区模块,提供了事件发布/订阅功能,使得实现事件驱动架构变得简单。文章还介绍了如何使用该模块,包括安装依赖、初始化模块、注册EventEmitterModule、使用装饰器简化监听等。最后总结,集成@nestjs/event-emitter模块可以提升应用程序的事件驱动能力,构建出更为松耦合、易扩展且高度灵活的系统架构,是构建现代、响应迅速且具有高度解耦特性的Nest.
274 0
Nest.js 实战 (十二):优雅地使用事件发布/订阅模块 Event Emitter
|
传感器 供应链 安全
大数据技术的应用场景
大数据技术的应用场景
|
Java 关系型数据库 MySQL
如何安装系统必备开发环境:JDK 1.8+、MySQL 5.7+ 与 Maven 3.0+
【7月更文挑战第1天】搭建Java开发环境:安装JDK 1.8+,MySQL 5.7+,Maven 3.0+。访问官方源下载对应软件,配置Windows或Linux/macOS的环境变量,包括`JAVA_HOME`, `PATH`, `MYSQL_ROOT_PASSWORD`及`MAVEN_HOME`。测试安装成功分别用`java/javac -version`, `mysql -u root -p`和`mvn -v`检查版本。完成后,即可开始Java项目开发。
1080 0
|
机器学习/深度学习 算法 数据可视化
机器学习-生存分析:如何基于随机生存森林训练乳腺癌风险评估模型?
机器学习-生存分析:如何基于随机生存森林训练乳腺癌风险评估模型?
607 1