如何利用python检测图片是否包含二维码
#代码知识 发布时间: 2026-01-12
前言

因为一直在几个平台发文章,发现有些平台并不会检测文章中的图片是否会包含二维码,但是其中也有平台会去检测,所以就去研究了一下python如何去检测。搜了一下大概有两个库可以使用:
- 一个是zbar,这个库是挺牛的,不过只支持python2.7,再者也没有继续维护,什么年代了,应该没人使用python2.7了吧(2025年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()
注释掉的代码可以在图片识别率低的情况下打开,以此提高图片亮度。
运行结果
都能正确识别出来,效果还是可以的。
以上就是如何利用python检测图片是否包含二维码的详细内容,更多关于python 二维码的资料请关注其它相关文章!
代码知识SEO上一篇 : Java countDownLatch如何实现多线程任务阻塞等待
下一篇 : java9在interface中定义私有方法详解
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!