自从上次批量的保存了半佛老师的各种骚图之后:我用Python一键保存了半佛老师所有的骚气表情包,每次做视频,找图就相当的费劲,因为图片太多,每次想要找到固定的图的话。就像大海捞针一样。因为上个版本的代码保存图片是截取部分图片链接进行命名的,所以名称是随机的。
所以今天我准备对这些图片重新命名。按照表情包中的文字来命名。所以我得找到能够识别图片中文字的方法。基础的方法的话,那就需要安装图像处理相关的库,像 pillow、pytesser3、Tesseract-OCR 等等库。用这些库识别图片中的文字的成功率不是很高,所有我准备调用一下第三方的一些库。我看了一下百度有个文字识别的API接口。我们需要在下面地址注册应用。
Python
https://ai.baidu.com/tech/ocr
1
2
https://ai.baidu.com/tech/ocr
我们在文字识别里面去创建一个应用,选择图片文字识别。
通用文字识别接口一天有5万次免费调用次数,对我们保存的几千多张的图片来说,绰绰有余了。
创建成功之后返回应用列表,我们可以看到刚刚创建的应用,有三个重要的参数,我们等下会用到 AppID、API Key、Secret Key。
我们就可以调用百度的这个识别图片文字的API接口库。我们首先需要安装这个baidu-aip库。
Python
pip install baidu-aip
1
2
pipinstallbaidu-aip
使用这个文字识别接口挑了几张图测试下效果:
总结下:
1、gif图片不识别,只能识别静态图,jpg、png、jpeg等。
2、识别成功率并不是100%,比如「人」会被识别成「入」。
3、图片中文字有换行的,都会分开以字典形式保存在 words_result 列表中。
我对有多行的文字全部加起来,组成一行文字。
图片中有时会存在无法保存为名称的符号。
我用 replace 方法对它进行替换去除。
Python
title = t.replace('/', '').replace('\\', '').replace(':', '').replace('*', '').replace('?', '').replace('<', '')\
.replace('>', '').replace('|', '').replace('.', '')
1
2
3
title=t.replace('/','').replace('\\','').replace(':','').replace('*','').replace('?','').replace('<','')\
.replace('>','').replace('|','').replace('.','')
gif 动态图无法识别,我们对它按照时间戳重命名。
表情包中没有文字的,我们也以时间戳命名。
给出我们需要批量改名称的文件夹目录,使用 rename 方法就可以批量改名字。
当然,我们也可以对上个版本的代码进行优化,就是边保存图片的时候边重命名。在下载图片的 download 方法后面加下根据表情包中文字重命名的方法即可。
效果如下:
这样,大部分的图片名称就是根据图中文字命名的,搜索起来更加方便了。比如,我要搜索「川 人类之光 普 老师」的素材的时候,输入「人类之光」就可以找到了。
最后,原创视频昨天已发到 B 站,很魔性,一起来欣赏下吧!
本文两个版本的代码(边保存变改名和对一个目录下的所有图片批量改名)全部发在 GitHub 上了,在本公众号「Python知识圈」后台输入框回复「重命名」即可。