如何利用python检测图片是否包含二维码


Posted in Python onOctober 15, 2020

前言

因为一直在几个平台发文章,发现有些平台并不会检测文章中的图片是否会包含二维码,但是其中也有平台会去检测,所以就去研究了一下python如何去检测。搜了一下大概有两个库可以使用:

  • 一个是zbar,这个库是挺牛的,不过只支持python2.7,再者也没有继续维护,什么年代了,应该没人使用python2.7了吧(2020年1月以后连python2.7都不再维护了,有还在使用的童靴该跟上时代了)。
  • 一个是pyzbar,基本上传承了zbar的功能。

安装

pip install pyzbar -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip install Pillow

测试

准备图片

首先去二维码生成网站准备一堆二维码作为测试准备,我准备了一些图片,也有不包含二维码的。

如何利用python检测图片是否包含二维码

代码

使用方法如下图,图片使用Pillow库打开,再用pyzbardecode解码,代码如下:

import pyzbar.pyzbar as pyzbar
from PIL import Image,ImageEnhance
import os
img_dir = "..\\img"
def open_img():

  img_list = []
  for _,_,file_list in os.walk(img_dir):
    img_list = [os.path.join(img_dir,file) for file in file_list if file.endswith(".jpg") or file.endswith(".png") ]
  print("所有文件:{}".format(img_list))

  return img_list



def show():
  img_list = open_img()
  for _img in img_list:
    img = Image.open(_img)
    # img = ImageEnhance.Brightness(img).enhance(2.0)#增加亮度

    # img = ImageEnhance.Sharpness(img).enhance(17.0)#锐利化

    # img = ImageEnhance.Contrast(img).enhance(4.0)#增加对比度

    # img = img.convert('L')#灰度化
    texts = pyzbar.decode(img)
    if not texts:
      print("{}文件不存在二维码".format(_img))
    for text in texts:
      t = text.data.decode("utf-8")
      if t:
        print("{}文件存在二维码,内容为:{}".format(_img,t))



if __name__ == '__main__':
  show()

注释掉的代码可以在图片识别率低的情况下打开,以此提高图片亮度。

运行结果

如何利用python检测图片是否包含二维码

都能正确识别出来,效果还是可以的。

以上就是如何利用python检测图片是否包含二维码的详细内容,更多关于python 二维码的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
在Python中使用PIL模块处理图像的教程
Apr 29 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
Aug 28 Python
Python装饰器实现几类验证功能做法实例
May 18 Python
Python探索之爬取电商售卖信息代码示例
Oct 27 Python
Python静态类型检查新工具之pyright 使用指南
Apr 26 Python
python开启debug模式的方法
Jun 27 Python
Python如何使用k-means方法将列表中相似的句子归类
Aug 08 Python
Python Print实现在输出中插入变量的例子
Dec 25 Python
python多项式拟合之np.polyfit 和 np.polyld详解
Feb 18 Python
keras topN显示,自编写代码案例
Jul 03 Python
使用python+pygame开发消消乐游戏附完整源码
Jun 10 Python
Python函数式编程中itertools模块详解
Sep 15 Python
用python实现一个简单计算器(完整DEMO)
Oct 14 #Python
python在linux环境下安装skimage的示例代码
Oct 14 #Python
python中如何使用虚拟环境
Oct 14 #Python
Python 3.9的到来到底是意味着什么
Oct 14 #Python
python破解同事的压缩包密码
Oct 14 #Python
如何Tkinter模块编写Python图形界面
Oct 14 #Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
Oct 14 #Python
You might like
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
php中文字符串截取方法实例总结
2014/09/30 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
JS根据变量保存方法名并执行方法示例
2014/04/04 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
EasyUI布局 高度自适应
2016/06/04 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
js实现随机点名程序
2020/09/17 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
JS实现简单打字测试
2020/06/24 Javascript
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
Python实战购物车项目的实现参考
2019/02/20 Python
python使用 cx_Oracle 模块进行查询操作示例
2019/11/28 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
Manuka Doctor英国官网:真正的麦卢卡蜂蜜和护肤品
2018/10/26 全球购物
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
英语专业学生个人求职信
2014/01/28 职场文书
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
大学班长竞选稿
2015/11/20 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
Navicat Premium自定义 sql 标签的创建方式
2022/09/23 数据库