幾行Python代碼實(shí)現(xiàn)文字識別,你敢信?
今天給大家分享的主題是用百度的接口實(shí)現(xiàn)圖片的文字識別。
環(huán)境和配置要求
整體是用Python實(shí)現(xiàn),所需要使用的第三方庫包括aip、PIL、keyboard、pyinstaller,如未安裝,可在CMD中使用pip install Baidu-AIP/pillow/keyboard/pyinstaller指令安裝。
百度接口
打開https://cloud.baidu.com/,
如未注冊請先注冊,然后登錄點(diǎn)擊管理控制臺,點(diǎn)擊左側(cè)產(chǎn)品服務(wù)→人工智能→文字識別,點(diǎn)擊創(chuàng)建應(yīng)用,輸入應(yīng)用名稱如Baidu_OCR,選擇用途如學(xué)習(xí)辦公,最后進(jìn)行簡單應(yīng)用描述,即可點(diǎn)擊立即創(chuàng)建。
會出現(xiàn)應(yīng)用列表,包括AppID、API Key、Secret Key等信息,這些稍后會用到。
打開步驟
具體實(shí)現(xiàn)步驟
整個(gè)程序的大致思路是,在用截圖軟件獲得截圖之后,交給百度接口識別,并返回結(jié)果,當(dāng)然,也可以是本地圖片識別,我用的是QQ自帶截圖軟件,快捷鍵CTRL+ALT+A用來打開截圖,在選中所截區(qū)域后,按Enter鍵即可保存到粘貼板中,也可用其他截圖軟件。
①獲取截圖
keyboard類庫是用來監(jiān)聽鍵盤動作的,所以在有快捷鍵按下之后,便會有相應(yīng)動作。并用PIL中的ImageGrab來獲取到剪切板中的圖片并生成本地圖片文件。
#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í)生成的應(yīng)用的AppID、API Key、Secret Key初始化應(yīng)用,再讀取保存到的圖片并打印識別的文字。
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é)果如圖所示:
運(yùn)行截圖
我們還可增加一個(gè)無限循環(huán)使得一直能截圖。
③調(diào)用打包程序生成專屬識別文字小程序
用pyinstaller庫實(shí)現(xiàn)小程序的打包,生成.exe文件,這樣就能隨時(shí)識別文字了。在命令行中用pyinstaller xxx.py來打包生成exe文件,最后在生成的dist文件夾即可找到xxx.exe文件如下:

專屬文字識別小程序
完整源代碼下載見文末!
附圖圖片識別案例