如何利用python检测图片是否包含二维码
作者:罗华 发布时间:2021-04-13 01:42:53
标签: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
库打开,再用pyzbar
的decode
解码,代码如下:
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()
注释掉的代码可以在图片识别率低的情况下打开,以此提高图片亮度。
运行结果
都能正确识别出来,效果还是可以的。
来源:http://www.happyhong.cn/python/10028.html


猜你喜欢
- 先看下object类中对__new__()方法的定义: class object: @staticm
- 代码如下:--CAST 和 CONVERT 函数 Percentage DECLARE @dec decimal(5,3), @var va
- Vue开发环境跨域访问其他服务器或者本机其他端口,需要配置项目中config/index.js文件,修改如下module.exports =
- 这篇文章主要介绍了Spring Cloud Feign高级应用实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- “点睛”的广告代码,很牛B,本想从中找出在FireFox下如何实现findText及pasteHTML类似效果的,我看了大半天,楞是没有看出
- 本文实例讲述了Python使用matplotlib绘制三维参数曲线操作。分享给大家供大家参考,具体如下:一 代码import matplot
- 1。onabort(ns3,ns4,ie4):当用户终止正在打开的网页时产生该事件。2。onblur(ns3,ns4,ie3,ie4):某元
- 利用Python将多份excel表格整理成一份表格,抛弃过去逐份打开复制粘贴的方式。直接附上代码:import xlrd import xl
- 如果你想用Python开发Windows程序,并让其开机启动等,就必须写成windows的服务程序Windows Service
- 前言子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。SQL 中子查询的使用大大增强了 SELECT
- 在pycharm中创建django项目的方法步骤,分享给大家,具体如下:创建完成后,我们可以看看django项目是否可以启动在Termina
- 我们在开发程序的时候,有时候需要开发一些自动化的任务,执行完之后,将结果自动的发送一份邮件,python发送邮件使用smtplib模块,是一
- 前言Vue2.x 使用 EventBus 事件总线进行兄弟组件通信,而在Vue3中事件总线模式已经被移除,官方建议使用外
- 代码:import sys # 导入系统模块获得cmd的参数import tracebackdef TEST(params):
- bootstrap前端开发工具栅格系统版心 .container栅格布局 (一行分为12格,响应式布局).row.col-md-12.col
- 每个写asp程序人必会的知识!在ASP编程中使用数组数组的定义Dim MyArrayMyArray = Array(1,5,123,12,9
- 我们可以通过更改注册表来解决这个问题: 打开注册表,进入到[HKEY_USERS\.DEFAULT\Control Panel\Intern
- GO项目目录解释src存放源代码pkg编译后生成的文件bin编译后生成的可执行文件背景在src目录下,新建文件test.go,编写代码。控制
- 结论概括的来说,就是对修饰的变量进行拆分, 对修饰的形式参数进行参数聚集。单*号,将被修饰的变量按元素方式拆分, 对修饰的形式参数进行参数聚
- 在一篇文章中看到关于PHP引用的图解,对于加深对PHP引用的理解很有帮助,在这里备份一下。如果你对PHP的引用一点也不了解,可以先看我之前的