如何利用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中文件操作简明介绍
Apr 13 Python
python中的全局变量用法分析
Jun 09 Python
python 表达式和语句及for、while循环练习实例
Jul 07 Python
一道python走迷宫算法题
Jan 22 Python
Python线程之定位与销毁的实现
Feb 17 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
Jul 04 Python
python爬虫 execjs安装配置及使用
Jul 30 Python
PyTorch中Tensor的维度变换实现
Aug 18 Python
tensorflow自定义激活函数实例
Feb 04 Python
如何基于python3和Vue实现AES数据加密
Mar 27 Python
Django在Model保存前记录日志实例
May 14 Python
python实现AHP算法的方法实例(层次分析法)
Sep 09 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
无需重新编译php加入ftp扩展的解决方法
2013/02/07 PHP
Laravel框架控制器的request与response用法示例
2019/09/30 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
用JAVASCRIPT如何给<textarea></textarea>赋值
2007/04/20 Javascript
Js 中debug方式
2010/02/07 Javascript
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
Jqgrid之强大的表格插件应用
2015/12/02 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
基于vue的fullpage.js单页滚动插件
2017/03/20 Javascript
JavaScript函数表达式详解及实例
2017/05/05 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
[17:13]DOTA2 HEROS教学视频教你分分钟做大人-斯拉克
2014/06/13 DOTA
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
linux下安装easy_install的方法
2013/02/10 Python
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
Python的randrange()方法使用教程
2015/05/15 Python
Python数据类型详解(二)列表
2016/05/08 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
PyQt5每天必学之布局管理
2018/04/19 Python
python 构造三维全零数组的方法
2018/11/12 Python
Python之NumPy(axis=0 与axis=1)区分详解
2019/05/27 Python
Python编写带选项的命令行程序方法
2019/08/13 Python
python两个_多个字典合并相加的实例代码
2019/12/26 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
2020/03/07 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
客户代表自我评价范例
2013/09/24 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
测控技术自荐信
2014/06/05 职场文书
2014年企业员工工作总结
2014/12/09 职场文书
责任书格式
2015/01/29 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书