批量識別圖中文字自動命名,讓你1秒找到騷圖!太強大了!

每次做視頻,找圖就相當的費勁,因為圖片太多,每次想要找到固定的圖的話。就像大海撈針一樣。因為上個版本的代碼保存圖片是截取部分圖片鏈接進行命名的,所以名稱是隨機的。

所以今天我準備對這些圖片重新命名。按照表情包中的文字來命名。所以我得找到能夠識別圖片中文字的方法。基礎的方法的話,那就需要安裝圖像處理相關的庫,像 pillow、pytesser3、Tesseract-OCR 等等庫。用這些庫識別圖片中的文字的成功率不是很高,所有我準備調用一下第三方的一些庫。我看了一下百度有個文字識別的API接口。我們需要在下面地址註冊應用。

<code>https://ai.baidu.com/tech/ocr/<code>

我們在文字識別裡面去創建一個應用,選擇圖片文字識別。

批量識別圖中文字自動命名,讓你1秒找到騷圖!太強大了!

通用文字識別接口一天有5萬次免費調用次數,對我們保存的幾千多張的圖片來說,綽綽有餘了。

批量識別圖中文字自動命名,讓你1秒找到騷圖!太強大了!

創建成功之後返回應用列表,我們可以看到剛剛創建的應用,有三個重要的參數,我們等下會用到 AppID、API Key、Secret Key。

批量識別圖中文字自動命名,讓你1秒找到騷圖!太強大了!

我們就可以調用百度的這個識別圖片文字的API接口庫。我們首先需要安裝這個baidu-aip庫。

<code>pip install baidu-aip/<code>

使用這個文字識別接口挑了幾張圖測試下效果:

批量識別圖中文字自動命名,讓你1秒找到騷圖!太強大了!

總結下:

1、gif圖片不識別,只能識別靜態圖,jpg、png、jpeg等。

2、識別成功率並不是100%,比如「人」會被識別成「入」。

批量識別圖中文字自動命名,讓你1秒找到騷圖!太強大了!

3、圖片中文字有換行的,都會分開以字典形式保存在 words_result 列表中。

我對有多行的文字全部加起來,組成一行文字。

批量識別圖中文字自動命名,讓你1秒找到騷圖!太強大了!

圖片中有時會存在無法保存為名稱的符號。

我用 replace 方法對它進行替換去除。

<code>title = t.replace('/', '').replace('\\\\', '').replace(':', '').replace('*', '').replace('?', '').replace('            .replace('>', '').replace('|', '').replace('.', '')/<code> 

gif 動態圖無法識別,我們對它按照時間戳重命名。

批量識別圖中文字自動命名,讓你1秒找到騷圖!太強大了!

表情包中沒有文字的,我們也以時間戳命名。

批量識別圖中文字自動命名,讓你1秒找到騷圖!太強大了!

給出我們需要批量改名稱的文件夾目錄,使用 rename 方法就可以批量改名字。

當然,我們也可以對上個版本的代碼進行優化,就是邊保存圖片的時候邊重命名。在下載圖片的 download 方法後面加下根據表情包中文字重命名的方法即可。

批量識別圖中文字自動命名,讓你1秒找到騷圖!太強大了!

效果如下:

批量識別圖中文字自動命名,讓你1秒找到騷圖!太強大了!

這樣,大部分的圖片名稱就是根據圖中文字命名的,搜索起來更加方便了。比如,我要搜索「川 人類之光 普 老師」的素材的時候,輸入「人類之光」就可以找到了。

批量識別圖中文字自動命名,讓你1秒找到騷圖!太強大了!


分享到:


相關文章: