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

相关文章

  • 详解Flask数据库的连接与使用

    详解Flask数据库的连接与使用

    这篇文章主要为大家想想介绍了Python中Flask数据库的连接与使用,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以学习一下
    2023-02-02
  • 深入解答关于Python的11道基本面试题

    深入解答关于Python的11道基本面试题

    这篇文章主要介绍了关于Python的11道基本面试题,其中单引号,双引号,三引号的区别、Python的参数传递是值传递还是引用传递以及什么是lambda函数?它有什么好处?等一系列的基础面试题,文中给出了详细的解答,需要的朋友可以参考学习。
    2017-04-04
  • Python编程新标准学会十项好习惯提升编码质量

    Python编程新标准学会十项好习惯提升编码质量

    这篇文章主要为大家介绍了Python编程新标准学会十项好习惯提升编码质量,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Django与遗留的数据库整合的方法指南

    Django与遗留的数据库整合的方法指南

    这篇文章主要介绍了Django与遗留的数据库整合的方法指南,Django是最具人气的Python开发框架,需要的朋友可以参考下
    2015-07-07
  • python之lambda表达式与sort函数中的key用法

    python之lambda表达式与sort函数中的key用法

    这篇文章主要介绍了python之lambda表达式与sort函数中的key用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python测试函数出现AssertionError:None != ‘Janis Joplin‘问题及解决

    Python测试函数出现AssertionError:None != ‘Janis Joplin‘问题及解决

    这篇文章主要介绍了Python测试函数出现AssertionError:None != ‘Janis Joplin‘问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Python计算标准差之numpy.std和torch.std的区别

    Python计算标准差之numpy.std和torch.std的区别

    Torch自称为神经网络中的numpy,它会将torch产生的tensor放在GPU中加速运算,就像numpy会把array放在CPU中加速运算,下面这篇文章主要给大家介绍了关于Python Numpy计算标准差之numpy.std和torch.std区别的相关资料,需要的朋友可以参考下
    2022-08-08
  • Win系统PyQt5安装和使用教程

    Win系统PyQt5安装和使用教程

    这篇文章主要介绍了Win系统PyQt5安装和使用教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • pandas创建DataFrame的方式小结

    pandas创建DataFrame的方式小结

    今天给大家整理了pandas创建DataFrame的方式小结,现在我们就来看看这三种生成Dataframe的方式,每种方式通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-09-09
  • Python实现打包成库供别的模块调用

    Python实现打包成库供别的模块调用

    这篇文章主要介绍了Python实现打包成库供别的模块调用,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07

最新评论