相思资源网 Design By www.200059.com
前言
因为一直在几个平台发文章,发现有些平台并不会检测文章中的图片是否会包含二维码,但是其中也有平台会去检测,所以就去研究了一下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()
注释掉的代码可以在图片识别率低的情况下打开,以此提高图片亮度。
运行结果
都能正确识别出来,效果还是可以的。
以上就是如何利用python检测图片是否包含二维码的详细内容,更多关于python 二维码的资料请关注其它相关文章!
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无如何利用python检测图片是否包含二维码的评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。