如何利用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 队列详解及实例代码
Oct 18 Python
python3.5绘制随机漫步图
Aug 27 Python
python如何以表格形式打印输出的方法示例
Jun 21 Python
linux下安装python3和对应的pip环境教程详解
Jul 01 Python
python内存动态分配过程详解
Jul 15 Python
对Django 中request.get和request.post的区别详解
Aug 12 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
Mar 03 Python
Python xpath表达式如何实现数据处理
Jun 13 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
Jul 28 Python
Python连接mysql方法及常用参数
Sep 01 Python
解决python便携版无法直接运行py文件的问题
Sep 01 Python
10张动图学会python循环与递归问题
Feb 06 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
WINDOWS服务器安装多套PHP的另类解决方案
2006/10/09 PHP
用PHP动态生成虚拟现实VRML网页
2006/10/09 PHP
关于使用key/value数据库redis和TTSERVER的心得体会
2013/06/28 PHP
php_pdo 预处理语句详解
2016/11/21 PHP
PHP中include和require的区别实例分析
2017/05/07 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
用js解决数字不能换行问题
2010/08/10 Javascript
javascript实现禁止复制网页内容
2014/12/16 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
JavaScript类的写法
2016/09/17 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
2016/09/21 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
微信小程序实现通过双向滑动缩放图片大小的方法
2018/12/30 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
2019/09/25 Javascript
[04:48]DOTA2亚洲邀请赛林书豪为VGJ加油
2017/04/01 DOTA
[01:00:30]TFT vs VGJ.T Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
2018/03/05 Python
python读取xlsx的方法
2018/12/25 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
2019/09/02 Python
css3边框_动力节点Java学院整理
2017/07/11 HTML / CSS
十八届三中全会感言
2014/03/10 职场文书
班级文化建设标语
2014/06/23 职场文书
党的群众路线教育实践活动心得体会范文
2014/11/05 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
2019银行竞聘书
2019/06/21 职场文书
python基于tkinter制作下班倒计时工具
2021/04/28 Python
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android
总结Java对象被序列化的两种方法
2021/06/30 Java/Android