利用Opencv+Python 实现二维码识别
准备工作:
二维码图片,我这里直接打印在了一张A4纸上,或者直接在草料网站上生成 草料二维码生成器,存放在手机上进行显示。在安装条码扫描库的时候大家注意:zbar库只针对 python2 版本有支持,python3已经不再支持。课程中使用的是python3,所以我们只能安装 pyzbar,安装命令如下: pip3 install pyzbar
实现目标
利用摄像头识别二维码中的内容并打印出来,同时兼容识别条形码内容
打开pycharm开发工具,在项目中新建 code.py 文件,文件代码如下: # -*- coding:utf-8 –*-
import cv2
import pyzbar.pyzbar as pyzbar def decodeDisplay(video):
# 转为灰度图像
gray = cv2.cvtColor(video, cv2.COLOR_BGR2GRAY)
barcodes = pyzbar.decode(gray)
for barcode in barcodes:
# 提取二维码的位置,然后用边框标识出来在视频中
(x, y, w, h) = barcode.rect
cv2.rectangle(video, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 字符串转换
barcodeData = barcode.data.decode("utf-8")
barcodeType = barcode.type
# 在图像上面显示识别出来的内容
text = "{}".format(barcodeData)
cv2.putText(video, text, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX,1, (0, 255, 0), 2)
# 打印识别后的内容
print("[扫描结果] 二维码类别: {0} 内容: {1}".format(barcodeType, barcodeData))
cv2.imshow("cam", video) def detect():
cv2.namedWindow("cam",cv2.WINDOW_NORMAL)
cam = cv2.VideoCapture(0)
while True:
# 读取当前帧
ret, frame = cam.read()
decodeDisplay(frame)
# 按ESC键退出
if(cv2.waitKey(5)==27):
break
cam.release()
cv2.destroyAllWindows() if __name__ == '__main__':
detect()
利用Opencv+Python 实现二维码识别的更多相关文章
- 基于opencv+python的二维码识别
花了2天时间终于把二维码识别做出来了,不过效果一般,后面会应用在ROS辅助定位上,废话少说先上图: 具体过程参考了这位大神的博客:http://blog.csdn.net/qq_25491201/ar ...
- 有关python下二维码识别用法及识别率对比分析
最近项目中用到二维码图片识别,在python下二维码识别,目前主要有三个模块:zbar .zbarlight.zxing. 1.三个模块的用法: #-*-coding=utf-8-*- import ...
- Python zxing 库解析(条形码二维码识别)
各种扫码软件 最近要做个二维码识别的项目,查到二维码识别有好多开源的不开源的软件 http://www.oschina.net/project/tag/238/ Zbar 首先试了一下Zbar,pyt ...
- Python 实现二维码生成和识别
今天突然想给自己自己做个头像,然后还是二维码的形式,这样只要扫一扫就可以访问我的主页.然后就开始自己的苦逼之路... 其实实现二维码java,c#,C++等都可以实现:由于自己正在学python,所以 ...
- Opencv+Zbar二维码识别(二维码校正)
二维码和车牌识别基本都会涉及到图像的校正,主要是形变和倾斜角度的校正,一种二维码的畸变如下图: 这个码用微信扫了一下,识别不出来,但是用Zbar还是可以准确识别的~~. 这里介绍一种二维码校正方法,通 ...
- python qrcode二维码生成与识别
二维码 二维码生成 1.用法 https://github.com/lincolnloop/python-qrcode 2.使用 简单实用 import qrcode # 二维码内容 data = & ...
- [opencv]二维码识别开发流程及问题复盘总结
项目复盘总结 开发需求: 在桌面机器人(向下俯视)摄像头拍摄到的图像中做条形码识别与二维码识别. 条形码在图像固定位置,二维码做成卡片的形式在固定区域内随意摆放. 开发环境及相关库:ubuntu 18 ...
- [opencv]二维码识别率提升方案-resize调整
这里采用循环resize的方式,对二维码图像进行放缩. 识别到name(二维码结果)不为空,则立即退出循环 //循环识别 for (int i = 1;name.empty(); i++){ resi ...
- Python制作二维码和条形码扫描器 (pyzbar)
条码在生活中随处可见,其可分为三类:一维条码.二维条码.三维条码 一维条码: 我们平时习惯称为条形码.条形码是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符.常见的条 ...
- 基于opencv3.0和下的条形码与二维码识别
其中对条码与二维码的识别分为以下4个步骤 1. 利用opencv和Zbar(或者Zxing)对标准的条形码图片(即没有多余背景干扰,且图片没有倾斜)进行解码,将解码信息显示出来,并与原始信息对比. 2 ...
随机推荐
- 我为什么要放弃RESTful,选择拥抱GraphQL
背景 REST作为一种现代网络应用非常流行的软件架构风格,自从Roy Fielding博士在2000年他的博士论文中提出来到现在已经有了20年的历史.它的简单易用性,可扩展性,伸缩性受到广大Web开发 ...
- git拉项目出现的小问题
问题描述 在IDEA中拉代码事报错. 点击查看报错信息 error: unable to read askpass response from 'C:\Users\霍亚龙\AppData\Local\ ...
- GDOI 2021 PJ 总结
Day 0.5 在门口等了好久,终于进去了. Day 1 下午来到考场,发现自己承诺书没有拿,然后就跑到宿舍去拿,回来发现只要身份证. T1一眼是个博弈,发现不太好打,先跳. T2发现最多消耗4320 ...
- VUE16 检测数据变化的原理
部分转自:https://www.vue-js.com/topic/6129d7d661c8f900316ae37a 1 简介 Vue采用MVVM(数据驱动视图)的模式,去充当MVVM中的VM层,在数 ...
- .NET周报 【2月第2期 2023-02-11】
国内文章 SQLSERVER的truncate和delete有区别吗? https://mp.weixin.qq.com/s/wTIeW8rjj3cRzoaQcg2sOw 在面试中我相信有很多朋友会被 ...
- P22_条件渲染
条件渲染 wx:if 在小程序中,使用 wx:if="{{condition}}" 来判断是否需要渲染该代码块: 也可以用 wx:elif 和 wx:else 来添加 else 判 ...
- 配置文件、RDB、Jedis
配置文件 # Note on units: when memory size is needed, it is possible to specify # it in the usual form o ...
- 原生微信小程序的一些注意点
1.微信小程序的数据更新 Page({ // 响应式的数据定义在data里面 data: { bannerList: [] }, // 微信小程序的数据更新是在setData里面做的 this.set ...
- vue3 setup语法糖下,vue自定义指令的实现,以及指令全局挂载,自定义v-loading的实现
最近一段时间,在做h5的移动端项目,UI组件库使用的vant,vant组件中的loading实在难用,无法包裹某个块进行loading,也无法对非组件的标签进行loading,所以想着自定义写个指令, ...
- vue-cli框架的下载以及框架目录介绍
目录 vue-cli框架的下载以及框架目录介绍 一.vue-cli创建项目 二.Vue项目目录介绍 vue-cli框架的下载以及框架目录介绍 一.vue-cli创建项目 在终端下载先下载cnpm # ...