十行代碼實(shí)現(xiàn)文字識(shí)別,你敢信?

本篇分享的是用百度的接口實(shí)現(xiàn)圖片的文字識(shí)別
1.環(huán)境和配置要求
整體是用Python實(shí)現(xiàn),所需要使用的第三方庫(kù)包括aip、PIL、keyboard、pyinstaller,如未安裝,可在CMD中使用pip install Baidu-AIP/pillow/keyboard/pyinstaller指令安裝。
百度接口
打開https://cloud.baidu.com/,如未注冊(cè)請(qǐng)先注冊(cè),然后登錄點(diǎn)擊管理控制臺(tái),點(diǎn)擊左側(cè)產(chǎn)品服務(wù)→人工智能→文字識(shí)別,點(diǎn)擊創(chuàng)建應(yīng)用,輸入應(yīng)用名稱如Baidu_OCR,選擇用途如學(xué)習(xí)辦公,最后進(jìn)行簡(jiǎn)單應(yīng)用描述,即可點(diǎn)擊立即創(chuàng)建。會(huì)出現(xiàn)應(yīng)用列表,包括AppID、API Key、Secret Key等信息,這些稍后會(huì)用到。

2.具體實(shí)現(xiàn)步驟
整個(gè)程序的大致思路是,在用截圖軟件獲得截圖之后,交給百度接口識(shí)別,并返回結(jié)果,當(dāng)然,也可以是本地圖片識(shí)別,我用的是QQ自帶截圖軟件,快捷鍵CTRL+ALT+A用來(lái)打開截圖,在選中所截區(qū)域后,按Enter鍵即可保存到粘貼板中,也可用其他截圖軟件。
獲取截圖
keyboard類庫(kù)是用來(lái)監(jiān)聽鍵盤動(dòng)作的,所以在有快捷鍵按下之后,便會(huì)有相應(yīng)動(dòng)作。并用PIL中的ImageGrab來(lái)獲取到剪切板中的圖片并生成本地圖片文件。
#1.截圖
keyboard.wait('ctrl+alt+a')
print('開始截圖')
?
keyboard.wait('enter')
print('保存截圖')
time.sleep(0.1)
?
#2.保存圖片
image?=?ImageGrab.grabclipboard()
image.save('img.png')
調(diào)用Baidu aip識(shí)別并打印文字
先用注冊(cè)時(shí)生成的應(yīng)用的AppID、API Key、Secret Key初始化應(yīng)用,再讀取保存到的圖片并打印識(shí)別的文字。
with?open('img.png',?'rb')?as?fp:
????image?=?fp.read()
????text_list?=?client.basicAccurate(image)['words_result']
????for?text?in?text_list:
????????print(text['words'])
運(yùn)行結(jié)果如圖所示:
我們還可增加一個(gè)無(wú)限循環(huán)使得一直能截圖。
調(diào)用打包程序生成專屬識(shí)別文字小程序
用pyinstaller庫(kù)實(shí)現(xiàn)小程序的打包,生成.exe文件,這樣就能隨時(shí)識(shí)別文字了。在命令行中用pyinstaller xxx.py來(lái)打包生成exe文件,最后在生成的dist文件夾即可找到xxx.exe文件如下:
最后附上整個(gè)源代碼:
#引入截圖軟件,獲取文件到本地端,并識(shí)別圖片文字,最后打包
import?keyboard?#控制鍵盤
from?PIL?import?ImageGrab?#保存圖片
import?time
from?aip?import?AipOcr
"""?你的?APPID?AK?SK?"""
APP_ID?=?'17076767'
API_KEY?=?'Af3Rj5HALMz5AN8prSgwTH4m'
SECRET_KEY?=?'******************'
client?=?AipOcr(APP_ID,?API_KEY,?SECRET_KEY)
i?=?0
while?True:
????#1.截圖
????keyboard.wait('ctrl+alt+a')
????print('開始截圖')
????keyboard.wait('enter')
????print('保存截圖')
????time.sleep(0.1)
????#2.保存圖片
????image?=?ImageGrab.grabclipboard()
????image.save('img{}.png'.format(i))
????"""?調(diào)用通用文字識(shí)別(高精度版)?"""
????with?open('img{}.png'.format(i),?'rb')?as?fp:
????????image?=?fp.read()
????????text_list?=?client.basicAccurate(image)['words_result']
????????for?text?in?text_list:
????????????print(text['words'])
????i+=1
附圖圖片識(shí)別案例
結(jié)語(yǔ)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)小編的支持。

推薦閱讀
(點(diǎn)擊標(biāo)題可跳轉(zhuǎn)閱讀)
論文繪圖神器來(lái)了:一行代碼繪制不同期刊格式圖表,哈佛博士后開源
調(diào)包俠的快樂莫過(guò)于此
