如何利用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 相关文章推荐
使用相同的Apache实例来运行Django和Media文件
Jul 22 Python
深入理解Python爬虫代理池服务
Feb 28 Python
pandas DataFrame数据转为list的方法
Apr 11 Python
解决python3 pika之连接断开的问题
Dec 18 Python
Python3 修改默认环境的方法
Feb 16 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
python语言线程标准库threading.local解读总结
Nov 10 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
Feb 26 Python
python redis存入字典序列化存储教程
Jul 16 Python
Python创建文件夹与文件的快捷方法
Dec 08 Python
Pandas数据结构之Series的使用
Mar 31 Python
Python+DeOldify实现老照片上色功能
Jun 21 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
Discuz 模板引擎的封装类代码
2008/07/18 PHP
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
几个高效,简洁的字符处理函数
2007/04/12 Javascript
javascript iframe编程相关代码
2009/12/28 Javascript
js DataSet数据源处理代码
2010/03/29 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
PhotoSwipe异步动态加载图片方法
2016/08/25 Javascript
JavaScript鼠标特效大全
2016/09/13 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
2016/11/29 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
vue组件横向树实现代码
2018/08/02 Javascript
React性能优化系列之减少props改变的实现方法
2019/01/17 Javascript
使用Python的Supervisor进行进程监控以及自动启动
2014/05/29 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
2016/04/24 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
Python socket实现简单聊天室
2018/04/01 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
selenium+python自动化测试之环境搭建
2019/01/23 Python
python datetime中strptime用法详解
2019/08/29 Python
python redis 批量设置过期key过程解析
2019/11/26 Python
python 使用shutil复制图片的例子
2019/12/13 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
远程调用的原理
2014/07/05 面试题
自我评价中英文语句
2013/11/30 职场文书
房地产销售计划书
2014/01/10 职场文书
骨干教师考核方案
2014/05/09 职场文书
党的群众路线领导班子整改方案
2014/09/27 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技