《OpenCV系列教程》
项目位置:OpenCV-Sample
代码位置:102-ScannerQRCodeWithZbar.py
OpenCV自带的二维码识别工具,能力较差,尤其是在如下的情况下经常识别不出来。

现在我们使用zBar这个开源二维码工具,它自身是C语言编写。支持多个操作系统,在Android和iPhone上支持的也很好。 我们只介绍python版本,这个版本是OpenCV与zBar的结合使用。 安装zBar 首先安装zBar的二进制版本。

sudo apt-get install libzbar-dev

然后安装zBar的Python包

pip install pyzbar

实际代码如下:

from __future__ import print_function
import pyzbar.pyzbar as pyzbar
import numpy as np
import cv2def decode(im):# 在这里查找二维码decodedObjects = pyzbar.decode(im)# 打印出结果for obj in decodedObjects:print('Type : ', obj.type)print('Data : ', obj.data, '\n')return decodedObjectsdef display(im, decodedObjects):for decodedObject in decodedObjects:points = decodedObject.polygonif len(points) > 4:hull = cv2.convexHull(np.array([point for point in points], dtype=np.float32))hull = list(map(tuple, np.squeeze(hull)))else:hull = points;n = len(hull)for j in range(0, n):cv2.line(im, hull[j], hull[(j + 1) % n], (255, 0, 0), 3)cv2.imshow("Results", im);cv2.waitKey(0);# Read image
im = cv2.imread('./res/QR3.jpeg')
decodedObjects = decode(im)
display(im, decodedObjects)

更强大的二维码识别工具zBar相关推荐

  1. Jetson nano 摄像头二维码识别 Opencv zbar QT

    环境以及前言 环境 jetson nano Linux ubuntu 18.4 QT版本 QT5.98 摄像头 Csi摄像头 Opencv Jetson nano 自带的-.- 应该是4.1?不太清楚 ...

  2. 帮我用java 写个二维码识别工具

    好的,那么首先你需要使用一个 Java 二维码库来生成和解析二维码.其中最常用的二维码库有 Zxing 和 QRGen.你可以使用 Maven 或者 Gradle 来管理这些库的依赖. 首先,你需要将 ...

  3. Android 比Zing 更快的二维码 条形码扫描Zbar

    之前项目要用做二维码 条形码的扫描 找资料 大多都是Zing 的,但是 zing 扫描比较慢 而且经常扫描半天不出来 ,如果是近距离的人话根本不行, 体验很差 ,最主要还可能是对zing 的理解不够透 ...

  4. 电脑端二维码识别工具_电脑端自签工具更新,多功能软件一键签名

    因为苹果后台的调整,电脑端的自签工具 Cydia Impactor 一直无法使用,如今虽然没有等到大胡子对 Cydia Impactor 适配更新,却等到了全新的替代工具. 先说下为什么 Cydia ...

  5. 【二维码】二维码识别

    一.什么是二维码 二维码 (2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的. 二维条码/二维码可以分为堆叠式 ...

  6. 关于Zbar和ZXing这两个无比强大的二维码和条形码识别工具

    之前做了一些关于一维码二维码识别与生成的工作.在这里总结一下子. 显然做这个我们不会花大量力气去自己来写这个识别过程, 这之间可能会包括人工识别方面的工作, 所以为了偷懒,便想到了去网上找这样的开源工 ...

  7. 生成二维码、识别二维码的工具类

    笔者日常: 第一次用markdown写文章,有点手生~ 声明: 此工具类由本人二次整理改造后分享给大家,原编写者未知,虽然本人重写了大部分逻辑代码,但是核心部分仍然是采用的原来的代码.若涉及侵权问题, ...

  8. 基于Android的二维码识别系统的研究与实现(eclipse开发)

    目 录 1 Android系统开发背景与意义 1 1.1 Android系统平台的出现 1 1.2 Android系统的发展 1 1.3 Android系统架构的介绍 1 1.4 Android开放系 ...

  9. iOS 花式二维码生成和二维码识别

    iOS 原生的二维码识别非常之棒,反正比 ZXing 和 ZBar 效果都好些,所以以后打算尽量用原生的二维码识别,然后最近把原生的二维码生成也顺便做了一遍,并且在原有基础上加了一些样式参数,封了一个 ...

最新文章

  1. python标准库介绍——23 UserString 模块详解
  2. vue 2.x项目 vue-qriously 生成二维码并下载、cliploard复制粘贴
  3. Ruby之Rspec的报错解决
  4. golang 判断目录是否为空
  5. mysql多启动与日志调优
  6. 理科大学二本计算机系,大学最好就业的二本专业:高校男生女生二本理科比较好的专业...
  7. 终端、虚拟控制台与伪终端
  8. 利用HTML中的XML数据岛记录浏览
  9. 使用java实现rfc3161,openssl验证用自签名证书签名的RFC3161时间戳
  10. eureka 服务注册与发现
  11. 模版 ----- DP
  12. 流水线机制、滑动窗口协议、GBN、SR
  13. mysql的优化_第十一篇(查询计划篇)
  14. 计算机二级C语言冲刺笔记。
  15. Kubernetes学习笔记(一):Pod详解:Pod配置、Pod生命周期、Pod调度、容器设计模式
  16. 易路代理静态IP和动态IP解析以及存在的区别
  17. b2b2c微信小程序商城源码
  18. 严重性代码说明项目文件行禁止显示状态错误LNK2019无法解析的外部符号 main,函数 “int __cdecl invoke_main(void)“ (? invoke_main@@YAHX
  19. idea中设置文件头自动设置@author@date
  20. plc实验报告流程图_plc实验报告(20140924)

热门文章

  1. 资源变现小程序开通流量主教程
  2. 响应式科技智能产品网站模板源码
  3. 你会用RxJS吗?【初识 RxJS中的Observable和Observer】
  4. 微信支付----企业付款到零钱和银行卡规则
  5. 收银系统读取服务器出错,今天超市收银系统出错,浪费了我好久时间
  6. pmml什么是pmml_什么是PMML?
  7. java 重定向out_java输出重定向
  8. TCP UDP 数据包过大导致分片情况
  9. P1518两只塔姆沃斯牛
  10. “这个文件已在资源编辑器外被修改,你要重新载入它吗?”