如何利用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 相关文章推荐
Django中的“惰性翻译”方法的相关使用
Jul 27 Python
python字典键值对的添加和遍历方法
Sep 11 Python
python脚本实现数据导出excel格式的简单方法(推荐)
Dec 30 Python
Python正则替换字符串函数re.sub用法示例
Jan 19 Python
python 获取图片分辨率的方法
Jan 08 Python
python安装pywin32clipboard的操作方法
Jan 24 Python
Python通过递归获取目录下指定文件代码实例
Nov 07 Python
Python turtle库绘制菱形的3种方式小结
Nov 23 Python
Keras自动下载的数据集/模型存放位置介绍
Jun 19 Python
详解使用scrapy进行模拟登陆三种方式
Feb 21 Python
python数据可视化使用pyfinance分析证券收益示例详解
Nov 20 Python
关于Python中进度条的六个实用技巧分享
Apr 05 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
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
php strcmp使用说明
2010/04/22 PHP
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
Get中文乱码IE浏览器Get中文乱码解决方案
2013/12/26 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
nodejs构建本地web测试服务器 如何解决访问静态资源问题
2017/07/14 NodeJs
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
2018/01/10 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
vue实现验证码按钮倒计时功能
2018/04/10 Javascript
eslint 的三大通用规则详解
2019/05/16 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
2019/11/08 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
js实现验证码干扰(动态)
2021/02/23 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
Python的函数嵌套的使用方法
2014/01/24 Python
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
python if not in 多条件判断代码
2016/09/21 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
python实现浪漫的烟花秀
2019/01/30 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
Python extract及contains方法代码实例
2020/09/11 Python
LEGO玩具英国官方商店:LEGO Shop GB
2018/03/27 全球购物
VC++笔试题
2014/10/13 面试题
离婚协议书怎么写的
2014/12/14 职场文书
三峡导游词
2015/01/31 职场文书
工作时间调整通知
2015/04/24 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
深入解析NumPy中的Broadcasting广播机制
2021/05/30 Python
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技