python使用pyzbar批量识别图片中的二维码
欢迎关注原创视频教程
Python微信订餐小程序课程视频
https://edu.csdn.net/course/detail/36074
Python实战量化交易理财系统
https://edu.csdn.net/course/detail/35475
背景
今天QQ群里面有人问到谁有二维码提取的工具,样子如下
我一看这个工具,感觉功能实现上比较简单,但我后来想了想这个工具功能虽然简单,但使用的人群还是比较多的,于是今天抽出几分钟的时间把这个工具的核心代码撸了撸,虽然没有做GUI,但运行代码基本上功能都实现了
准备要识别的二维码图片
要识别的二维码图片()如下:
准备python环境
我的python环境是python3.8 创建目录qrcode目录,进入改目录执行如下代码
cd qrcodepython -m venv venv\venv\Scripts\Activate.ps1 # windows powershell 执行进入python虚拟环境# 安装 pyzbar 模块
pip install pyzbar
#安装 PIL库
pip install pillow
实现简单的单张二维码图片识别代码
from PIL import Image
import pyzbar.pyzbar as pyzbarimg_path = 'qrcode.png'
img = Image.open(img_path)#使用pyzbar解析二维码图片内容
barcodes = pyzbar.decode(img)#打印解析结果,从结果上可以看出,data是识别到的二维码内容,rect是二维码所在的位置
print(barcodes)
# [Decoded(data=b'http://www.h3blog.com', type='QRCODE', rect=Rect(left=7, top=7, width=244, height=244), polygon=[Point(x=7, y=7), Point(x=7, y=251), Point(x=251, y=251), Point(x=251, y=7)])]for barcode in barcodes:barcode_content = barcode.data.decode('utf-8') # 二维码内容print(barcode_content)barcode_rect = barcode.rect # 二维码在图片中的位置qr_size = list(barcode_rect) #二维码大小print(qr_size)
批量识别图片二维码
我们把上面的代码重构下,做一个批量识别二维码的小工具,程序读取指定目录下面的图片,将识别结果保存到txt文件中
代码如下保存成 qrcode.py:
from PIL import Image
import pyzbar.pyzbar as pyzbar
import osdef qrcode_parse_content(img_path):'''单张图片的二维码解析'''img = Image.open(img_path)#使用pyzbar解析二维码图片内容barcodes = pyzbar.decode(img)#打印解析结果,从结果上可以看出,data是识别到的二维码内容,rect是二维码所在的位置# print(barcodes)# [Decoded(data=b'http://www.h3blog.com', type='QRCODE', rect=Rect(left=7, top=7, width=244, height=244), polygon=[Point(x=7, y=7), Point(x=7, y=251), Point(x=251, y=251), Point(x=251, y=7)])]result = []for barcode in barcodes:barcode_content = barcode.data.decode('utf-8')result.append(barcode_content)return resultdef load_imgs(folder):'''加载文件夹下的图片'''imgs = []for img_path in os.listdir(folder):ext = os.path.splitext(img_path)if len(ext) > 1 and is_img(ext[1]):imgs.append(img_path)return imgsdef is_img(ext):'''判断文件后缀是否是图片'''ext = ext.lower()if ext == '.jpg':return Trueelif ext == '.png':return Trueelif ext == '.jpeg':return Trueelif ext == '.bmp':return Trueelse:return Falseif __name__ == "__main__":imgs = load_imgs('./') # 打开图片文件夹,我这里是当前程序运行目录contents = []for img in imgs:contents.extend(qrcode_parse_content(img))file = './result.txt' # 写入文件路径,我这里程序当前运行目录下的result.txtwith open(file,'w') as f:for c in contents:f.write(c + '\n')
运行
python qrcode.py
总结
这里面注意是运用pyzbar识别二维码,整个过程比较简单,上述代码供大家参考,当然加上GUI界面操作就有一点点的小逼格了,2333333
python使用pyzbar批量识别图片中的二维码相关推荐
- 如何使用Python识别图片中的二维码
如何使用Python识别图片中的二维码 二维码是一种方便快捷的信息传递方式,它们广泛应用于电子商务.广告和其他领域.在许多情况下,我们需要识别图片中的二维码,以便从中获取信息.Python是一种流行的 ...
- JavaCV进阶opencv图像处理:10行代码快速实现扫描识别图片中的二维码
人脸检测识别 javacv进阶opencv图像检测/识别系列目录 人脸检测识别 JavaCV进阶opencv图像处理:摄像头图像人脸检测 JavaCV进阶opencv图像处理:ffmpeg视频图像画面 ...
- 批量识别条形码和二维码
依赖 <dependency><groupId>net.sf.barcode4j</groupId><artifactId>barcode4j-ligh ...
- python识别图片中的二维码_python3+pyzbar+Image 进行图片二维码识别
1.前言 最近公司有个项目要写个程序自动识别客户提交照片里的二维码,一接到这个任务马上就想到了用Python这个万能的工具! 2.搜寻 首先在网上到处找了很多"灵感",看看其他人都 ...
- 使用UVCCamera拍照后zbar与zxing识别图片中的二维码
最近公司有一个需求,使用UVC摄像头,拍照识别图中的二维码. 关于UVC请看:mirrors / liuguihong / androiduvccamera · GitCode 步骤如下: 1.添加依 ...
- OpenCV检测与识别条码、二维码
原文链接:http://www.juzicode.com/opencv-note-barcodedetector-qrcodedetector 在 zbar:给我来10G打码图片 一文中桔子菌介绍了 ...
- 【Python-利用动态二维码传输文件(四)】使用pyautogui库录屏(连续截图),然后利用OpenCV逐张读取截图,识别当中的二维码信息,并把信息重组成原文件
程序示意图 目录 一.使用pyautogui库,对电脑屏幕进行录屏 二.使用OpenCV库对100帧截图进行识别,并与原29帧二维码图片内含信息进行比对 三.把获取的100帧二维码信息去重,并保持原来 ...
- python 全栈开发,Day128(创建二维码,扫码,创建玩具的基本属性)
python 全栈开发,Day128(创建二维码,扫码,创建玩具的基本属性) 昨日内容回顾 1.app播放音乐plus.audio.createPlayer(文件路径/URL)player.play( ...
- 用不同的QR Code识别库实现二维码的识别(第一篇:opencv 和BoofCV)
最近有个项目需要实现二维码的识别和摄像头的数据采集.在开始正式项目之前,我决定用python写几行简单的代码来测试每个库的识别效果.这次没有连续测量,也没有使用多线程识别.只是简单的测试了每个二维码的 ...
最新文章
- 魔与道的反复较量 反垃圾邮件技术
- PNAS | 基因调控之深度学习揭示免疫细胞分化的调节机制
- 从C语言的角度重构数据结构系列(四)-静态链表动态链表
- html5和响应式,35个响应式HTML5和CSS3模版
- [architecture]-ARMV7的模式切换总结
- html5 自定义属性data-*
- 给自己一个微笑,让生命带给我们更多的幸福。
- 积木赛尔号机器人_《赛尔号大电影7》定档2019年暑期 十年陪伴升级归来
- 多线程完成连续打印1-100的数字, 要求一条线程专门打印奇数,另外一条专门用来打印偶数
- stc15w4k32s4芯片引脚图片_单片机引脚功能初识及提高(3)
- MS Office 冷门却实用的技巧及软件安装包分享(文末有福利)
- 网页导出pdf不完整_这些 PDF 神器,请你务必收藏
- sim800使用方法
- linux运行脚本运行不了,shell脚本在windows上可以执行,Linux上面不能执行
- 计算机术语写祝福语,祝福语精选
- 【Python爬虫项目】链家房屋信息抓取(超详细适合新手练习附源码)
- gdal-ogr2ogr空间数据转换
- 将cookie字符串转成editthiscookie插件的json格式
- 外贸建站之独立站系统选择
- [转载]看外国人在网络上的吐槽:为什么中文这么TM难?