自从上次批量的保存了半佛老师的各种骚图之后: 我用 Python 一键保存了半佛老师所有的骚气表情包 https://mp.weixin.qq.com/s/tZjWYQMspvIK94HtpVFCww , 每次做视频, 找图就相当的费劲, 因为图片太多, 每次想要找到固定的图的话. 就像大海捞针一样. 因为上个版本的代码保存图片是截取部分图片链接进行命名的, 所以名称是随机的.
所以今天我准备对这些图片重新命名. 按照表情包中的文字来命名. 所以我得找到能够识别图片中文字的方法. 基础的方法的话, 那就需要安装图像处理相关的库, 像 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 秒找到我要的表情包 https://www.bilibili.com/video/BV1u541147gQ
本文两个版本的代码 (边保存变改名和对一个目录下的所有图片批量改名) 全部发在 GitHub 上了, 在本公众号「Python 知识圈」后台输入框回复「重命名」即可.
来源: https://www.cnblogs.com/pythoncircle/p/12781962.html