大家好,我是小瑜~
之前小瑜學(xué)習(xí)Python時(shí)遇到過(guò)一個(gè)問(wèn)題,就是要將圖片中的文字給提取出來(lái),當(dāng)時(shí)是別人幫忙搞出來(lái)的,現(xiàn)在學(xué)會(huì)了提取方式,來(lái)給大家分享一下。當(dāng)然也給大家準(zhǔn)備了源碼在文末。
01創(chuàng)建賬號(hào)
我們這次使用的是百度AI上的文字識(shí)別功能,來(lái)將圖片上的文字進(jìn)行提取。我們先打開百度AI界面,然后點(diǎn)擊控制臺(tái)。

跳轉(zhuǎn)到登陸界面后,輸入賬號(hào)密碼后,跳轉(zhuǎn)到管理界面,此時(shí)我們點(diǎn)擊文字識(shí)別。進(jìn)入到文字識(shí)別應(yīng)用界面。

然后創(chuàng)建一個(gè)應(yīng)用(如已創(chuàng)建好,就點(diǎn)擊管理應(yīng)用)。

創(chuàng)建好后,進(jìn)入到應(yīng)用列表中,記下來(lái)‘AppID’、‘API Key’、‘Secret Key’這三個(gè)參數(shù)的值。在后面對(duì)API進(jìn)行調(diào)用的時(shí)候需要用到這三個(gè)參數(shù)。

02提取文字
我們?cè)谏厦嬉呀?jīng)注冊(cè)號(hào)百度AI的賬號(hào)了,現(xiàn)在我們要開始使用它來(lái)將圖片中的文字給提取出來(lái)。首先,我們先安裝一下要使用到的庫(kù)。
pip install baidu-aip
這個(gè)庫(kù)里提供了兩個(gè)函數(shù):AipOcr函數(shù)和client.basicGeneral函數(shù)。這兩個(gè)函數(shù)一個(gè)實(shí)現(xiàn)用戶驗(yàn)證功能,另一個(gè)實(shí)現(xiàn)了文字識(shí)別功能。代碼如下:
from aip import AipOcr
APP_ID = '你的APPID'
API_KEY = 'API Key'
SECRET_KEY = '你的Secret Key'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
with open(img,'rb') as f:
? image = f.read()
word = client.basicGeneral(image)
轉(zhuǎn)換效果如下:

從圖中可以看出,這樣的轉(zhuǎn)化方式還是比率還是很高的。
03批量提取
我們已經(jīng)學(xué)會(huì)如何提取單張圖片中的文字了,現(xiàn)在我們只要能夠遍歷圖片就可以了。在上一篇 文章中,我們分享了一個(gè)遍歷該目錄下Excel文件的辦法,遍歷圖片其實(shí)和他一樣,只不過(guò)把Excel換成jpg即可。代碼如下:
from pathlib import Path, PurePath
files = []
p = Path(src_path)
for x in p.iterdir():
if PurePath(x).match('*.jpg'):
? ? ? files.append(x)
04小結(jié)
批量提取圖片文字的思路是:
1. 注冊(cè)百度AI的賬號(hào)。
2. 通過(guò)調(diào)用百度AI,將圖片中的文字提取。
3. 將提取出來(lái)的文字進(jìn)行保存。
4. 依次遍歷該目錄下所有圖片,重復(fù)2、3操作。