如何利用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 二维码的资料请关注脚本之家其它相关文章!

相关文章

  • Python3中多线程编程的队列运作示例

    Python3中多线程编程的队列运作示例

    这篇文章主要介绍了Python3中多线程编程的队列运作示例,文中用一个简单的例子展示了Python下尝试多线程时队列的进站出站是如何运作的,需要的朋友可以参考下
    2015-04-04
  • 使用Python和python-pptx构建Markdown到PowerPoint转换器

    使用Python和python-pptx构建Markdown到PowerPoint转换器

    在这篇博客中,我们将深入分析一个使用 Python 开发的应用程序,该程序可以将 Markdown 文件转换为 PowerPoint 演示文稿,我们将探讨代码结构、功能和关键组件,并解决一个特定的 bug,需要的朋友可以参考下
    2025-03-03
  • Pyqt5 Designer构建桌面应用设计及实现代码

    Pyqt5 Designer构建桌面应用设计及实现代码

    这篇文章主要为大家介绍了Pyqt5 Designer构建桌面应用设计及实现代码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • 聊聊python中not 与 is None的区别

    聊聊python中not 与 is None的区别

    这篇文章主要介绍了在python中not 与 is None的区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python使用Pandas库常见操作详解

    Python使用Pandas库常见操作详解

    这篇文章主要介绍了Python使用Pandas库常见操作,结合实例形式详细分析了Python Pandas模块的功能、原理、数据对象创建、查看、选择等相关操作技巧与注意事项,需要的朋友可以参考下
    2020-01-01
  • python3 求约数的实例

    python3 求约数的实例

    今天小编就为大家分享一篇python3 求约数的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python利用pywin32实现自动操作电脑

    Python利用pywin32实现自动操作电脑

    在windows系统上,重复性的操作可以用Python脚本来完成,其中常用的模块是win32gui、win32con、win32api,要使用这三个模块需要先安装pywin32。本文就为大家介绍了如何利用这些模块实现自动操作电脑,感兴趣的可以了解一下
    2022-11-11
  • Python实现FTP弱口令扫描器的方法示例

    Python实现FTP弱口令扫描器的方法示例

    这篇文章主要介绍了Python实现FTP弱口令扫描器的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • 基于Python函数的作用域规则和闭包(详解)

    基于Python函数的作用域规则和闭包(详解)

    下面小编就为大家分享一篇基于Python函数的作用域规则和闭包详解,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • Python实现的端口扫描功能示例

    Python实现的端口扫描功能示例

    这篇文章主要介绍了Python实现的端口扫描功能,涉及Python针对端口的连接、打开、关闭及线程相关操作技巧,需要的朋友可以参考下
    2018-04-04

最新评论