如何利用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 连连看连接算法
Nov 22 Python
python的三目运算符和not in运算符使用示例
Mar 03 Python
Python实现一个转存纯真IP数据库的脚本分享
May 21 Python
详谈Numpy中数组重塑、合并与拆分方法
Apr 17 Python
Python操作Sql Server 2008数据库的方法详解
May 17 Python
利用Python将每日一句定时推送至微信的实现方法
Aug 13 Python
python3的输入方式及多组输入方法
Oct 17 Python
Python中单线程、多线程和多进程的效率对比实验实例
May 14 Python
一行Python代码制作动态二维码的实现
Sep 09 Python
pytorch中的自定义数据处理详解
Jan 06 Python
python logging 日志的级别调整方式
Feb 21 Python
python 批量下载bilibili视频的gui程序
Nov 20 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
56.com视频采集接口程序(PHP)
2007/09/22 PHP
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
php中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
Grid得到选择行数据的方法总结
2011/01/17 Javascript
jquery ajax return没有返回值的解决方法
2011/10/20 Javascript
不同Jquery版本引发的问题解决
2013/10/14 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
详细分析jsonp的原理和实现方式
2017/11/20 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
微信小程序 生成携带参数的二维码
2019/10/23 Javascript
js实现随机圆与矩形功能
2020/10/29 Javascript
[51:50]完美世界DOTA2联赛 Magma vs GXR 第一场 11.07
2020/11/10 DOTA
详解Python编程中包的概念与管理
2015/10/16 Python
带你了解python装饰器
2017/06/15 Python
python字符串string的内置方法实例详解
2018/05/14 Python
python实现视频分帧效果
2019/05/31 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
python利用opencv实现颜色检测
2021/02/23 Python
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
日本高岛屋百货购物网站:TAKASHIMAYA
2019/03/24 全球购物
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
计算机毕业生求职信
2014/06/10 职场文书
求职教师自荐书
2014/06/19 职场文书
先进工作者推荐材料
2014/12/23 职场文书
机修车间主任岗位职责
2015/04/08 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书