批量识别图中文字自动命名,让你1秒找到骚图
Posted pythoncircle
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量识别图中文字自动命名,让你1秒找到骚图相关的知识,希望对你有一定的参考价值。
自从上次批量的保存了半佛老师的各种骚图之后:我用Python一键保存了半佛老师所有的骚气表情包,每次做视频,找图就相当的费劲,因为图片太多,每次想要找到固定的图的话。就像大海捞针一样。因为上个版本的代码保存图片是截取部分图片链接进行命名的,所以名称是随机的。
所以今天我准备对这些图片重新命名。按照表情包中的文字来命名。所以我得找到能够识别图片中文字的方法。基础的方法的话,那就需要安装图像处理相关的库,像 pillow、pytesser3、Tesseract-OCR 等等库。用这些库识别图片中的文字的成功率不是很高,所有我准备调用一下第三方的一些库。我看了一下百度有个文字识别的API接口。我们需要在下面地址注册应用。
https://ai.baidu.com/tech/ocr
我们在文字识别里面去创建一个应用,选择图片文字识别。
通用文字识别接口一天有5万次免费调用次数,对我们保存的几千多张的图片来说,绰绰有余了。
创建成功之后返回应用列表,我们可以看到刚刚创建的应用,有三个重要的参数,我们等下会用到 AppID、API Key、Secret Key。
我们就可以调用百度的这个识别图片文字的API接口库。我们首先需要安装这个baidu-aip库。
pip install baidu-aip
使用这个文字识别接口挑了几张图测试下效果:
总结下:
1、gif图片不识别,只能识别静态图,jpg、png、jpeg等。
2、识别成功率并不是100%,比如「人」会被识别成「入」。
3、图片中文字有换行的,都会分开以字典形式保存在 words_result 列表中。
我对有多行的文字全部加起来,组成一行文字。
图片中有时会存在无法保存为名称的符号。
我用 replace 方法对它进行替换去除。
title = t.replace(‘/‘, ‘‘).replace(‘‘, ‘‘).replace(‘:‘, ‘‘).replace(‘*‘, ‘‘).replace(‘?‘, ‘‘).replace(‘<‘, ‘‘) .replace(‘>‘, ‘‘).replace(‘|‘, ‘‘).replace(‘.‘, ‘‘)
gif 动态图无法识别,我们对它按照时间戳重命名。
表情包中没有文字的,我们也以时间戳命名。
给出我们需要批量改名称的文件夹目录,使用 rename 方法就可以批量改名字。
当然,我们也可以对上个版本的代码进行优化,就是边保存图片的时候边重命名。在下载图片的 download 方法后面加下根据表情包中文字重命名的方法即可。
效果如下:
这样,大部分的图片名称就是根据图中文字命名的,搜索起来更加方便了。比如,我要搜索「川 人类之光 普 老师」的素材的时候,输入「人类之光」就可以找到了。
最后,原创视频昨天已发到 B 站,很魔性,一起来欣赏下吧!
硬核加倍,识别表情包中文字当成名称命名,1秒找到我要的表情包
本文两个版本的代码(边保存变改名和对一个目录下的所有图片批量改名)全部发在 GitHub 上了,在本公众号「Python知识圈」后台输入框回复「重命名」即可。
欢迎关注公众号「Python知识圈」,公众号后台回复关键字,获取更多干货。
回复「英语」:送你英语 7000 单词速记法,亲测非常有效。
回复「编程」:免费获赠2019最新编程资料,认真学完BAT offer 拿到手软。
回复「赚钱」:领取简单可实操的 36 个赚钱的小项目,每天多赚100块零花钱。
以上是关于批量识别图中文字自动命名,让你1秒找到骚图的主要内容,如果未能解决你的问题,请参考以下文章
如何批量识别图像中的文字并对图片进行识别的文字图片文件重命名,也可以识别后更改文件夹也支持多级目录