如何利用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爬虫教程之爬取百度贴吧并下载的示例
Mar 07 Python
Python合并两个字典的常用方法与效率比较
Jun 17 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
Python定时器实例代码
Nov 01 Python
tensorflow实现对图片的读取的示例代码
Feb 12 Python
Python实现加载及解析properties配置文件的方法
Mar 29 Python
python数字图像处理之高级形态学处理
Apr 27 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
Jun 28 Python
用pycharm开发django项目示例代码
Jun 13 Python
python 二维矩阵转三维矩阵示例
Nov 30 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
Jun 23 Python
Python实现提取PDF简历信息并存入Excel
Apr 02 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
PHP支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
php实现微信扫码支付
2017/03/26 PHP
js获取提交的字符串的字节数
2009/02/09 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
js+html5操作sqlite数据库的方法
2016/02/02 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
2016/10/09 Javascript
node学习记录之搭建web服务器教程
2017/02/16 Javascript
JavaScript使用readAsDataURL读取图像文件
2017/05/10 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
vue中$nextTick的用法讲解
2019/01/17 Javascript
layui递归实现动态左侧菜单
2019/07/26 Javascript
微信小程序绘制半圆(弧形)进度条
2020/11/18 Javascript
vue单元格多列合并的实现
2020/11/26 Vue.js
Python实例之wxpython中Frame使用方法
2014/06/09 Python
利用Python实现网络测试的脚本分享
2017/05/26 Python
浅谈Pandas 排序之后索引的问题
2018/06/07 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
如何通过50行Python代码获取公众号全部文章
2019/07/12 Python
基于python实现从尾到头打印链表
2019/11/02 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
意大利婴儿产品网上商店:Mukako
2018/10/14 全球购物
财务管理个人自荐书范文
2013/11/24 职场文书
安全大检查实施方案
2014/02/22 职场文书
菜篮子工程实施方案
2014/03/08 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
5行Python代码实现一键批量扣图
2021/06/29 Python
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android