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 层级设计:从入门到精通
3543 1
|
2月前
|
人工智能 数据可视化 数据处理
从拖拽到架构:低代码如何兼顾速度、灵活性与可控边界
在敏捷开发背景下,低代码技术已从工具层面演进为架构级交付要素,重构IT治理与系统边界管理。它推动开发职能在专业开发者、业务人员与运维管理者之间重新分配,带来灵活性的同时也引发架构平衡、系统可维护性与治理统一等挑战。唯有在清晰架构与治理规则下,低代码才能真正成为敏捷开发的助推器,而非技术债务来源。本文深入探讨低代码在可视化工作流、模型驱动开发、数据处理、AI融合、插件生态、开放架构与企业功能等方面的技术实现与业务价值。
从拖拽到架构:低代码如何兼顾速度、灵活性与可控边界
|
监控 开发者 UED
QLineEdit:textChanged、textedited区别
总之,理解 `textChanged`与 `textEdited`之间的细微差别,可以帮助开发者更加精准地控制用户界面的响应逻辑,提升应用程序的互动性和效率。
521 3
|
搜索推荐 应用服务中间件 nginx
Nginx系列教程(05) - 虚拟主机配置
Nginx系列教程(05) - 虚拟主机配置
1024 0
|
存储 缓存 负载均衡
NGINX 性能调优的五大技巧
【8月更文挑战第27天】
403 5
Nest.js 实战 (十二):优雅地使用事件发布/订阅模块 Event Emitter
这篇文章介绍了在Nest.js构建应用时,如何通过事件/发布-订阅模式使应用程序更健壮、灵活、易于扩展,并简化服务间通信。文章主要围绕@nestjs/event-emitter模块展开,这是一个基于eventemitter2库的社区模块,提供了事件发布/订阅功能,使得实现事件驱动架构变得简单。文章还介绍了如何使用该模块,包括安装依赖、初始化模块、注册EventEmitterModule、使用装饰器简化监听等。最后总结,集成@nestjs/event-emitter模块可以提升应用程序的事件驱动能力,构建出更为松耦合、易扩展且高度灵活的系统架构,是构建现代、响应迅速且具有高度解耦特性的Nest.
247 0
Nest.js 实战 (十二):优雅地使用事件发布/订阅模块 Event Emitter
|
Python
python中注释使用三个引号 """ 或 '''
【8月更文挑战第1天】
992 4
|
SQL 监控 Oracle
DynaTrace应用监控工具安装说明V1.0
DynaTrace是一款应用监控工具,通过安装服务器端、客户端和代理,可以监测应用系统性能并快速定位故障,同时提供用户响应时间和事务处理过程的详细报告。
312 0
|
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项目开发。
1042 0
下一篇
oss云网关配置