如何利用python检测图片是否包含二维码

 更新时间:2020年10月15日 08:35:11   作者:罗华  
这篇文章主要介绍了如何利用python检测图片是否包含二维码,帮助大家更好的利用python处理图片,感兴趣的朋友可以了解下

前言

因为一直在几个平台发文章,发现有些平台并不会检测文章中的图片是否会包含二维码,但是其中也有平台会去检测,所以就去研究了一下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

测试

准备图片

首先去二维码生成网站准备一堆二维码作为测试准备,我准备了一些图片,也有不包含二维码的。

代码

使用方法如下图,图片使用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操作mongodb数据库进行模糊查询操作示例

    Python操作mongodb数据库进行模糊查询操作示例

    这篇文章主要介绍了Python操作mongodb数据库进行模糊查询操作,结合实例形式分析了Python连接MongoDB数据库及使用正则表达式进行模糊查询的相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • Python3.5装饰器原理及应用实例详解

    Python3.5装饰器原理及应用实例详解

    这篇文章主要介绍了Python3.5装饰器原理及应用,结合具体实例形式详细分析了Python3.5装饰器的概念、原理、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-04-04
  • 在Python中如何传递任意数量的实参的示例代码

    在Python中如何传递任意数量的实参的示例代码

    这篇文章主要介绍了在Python中如何传递任意数量的实参的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • tensorflow实现tensor中满足某一条件的数值取出组成新的tensor

    tensorflow实现tensor中满足某一条件的数值取出组成新的tensor

    今天小编就为大家分享一篇tensorflow实现tensor中满足某一条件的数值取出组成新的tensor,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 浅谈优化Django ORM中的性能问题

    浅谈优化Django ORM中的性能问题

    这篇文章主要介绍了浅谈优化Django ORM中的性能问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 5行Python代码实现图像分割的步骤详解

    5行Python代码实现图像分割的步骤详解

    这篇文章主要介绍了5行Python代码实现图像分割的步骤详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Python+tkinter使用80行代码实现一个计算器实例

    Python+tkinter使用80行代码实现一个计算器实例

    这篇文章主要介绍了Python+tkinter使用80行代码实现一个计算器实例,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • python编写根据年份判断生肖实例

    python编写根据年份判断生肖实例

    这篇文章主要为大家介绍了python编写根据年份判断生肖实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • python密码学列置换密码学习

    python密码学列置换密码学习

    这篇文章主要为大家介绍了python密码学列置换密码学习的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python可变对象与不可变对象原理解析

    Python可变对象与不可变对象原理解析

    这篇文章主要介绍了Python可变对象与不可变对象原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02

最新评论