十行Python代碼實現(xiàn)文字識別功能
今天給大家分享的主題是用百度的接口實現(xiàn)圖片的文字識別。
1.環(huán)境和配置要求
整體是用Python實現(xiàn),所需要使用的第三方庫包括aip、PIL、keyboard、pyinstaller,如未安裝,可在CMD中使用pip install Baidu-AIP/pillow/keyboard/pyinstaller
指令安裝。
百度接口
打開網(wǎng)址,如未注冊請先注冊,然后登錄點擊管理控制臺,點擊左側(cè)產(chǎn)品服務(wù)→人工智能→文字識別,點擊創(chuàng)建應(yīng)用,輸入應(yīng)用名稱如Baidu_OCR,選擇用途如學(xué)習(xí)辦公,最后進(jìn)行簡單應(yīng)用描述,即可點擊立即創(chuàng)建。會出現(xiàn)應(yīng)用列表,包括AppID、API Key、Secret Key等信息,這些稍后會用到。
2.具體實現(xiàn)步驟
整個程序的大致思路是,在用截圖軟件獲得截圖之后,交給百度接口識別,并返回結(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識別并打印文字
先用注冊時生成的應(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'])
運行結(jié)果如圖所示:
我們還可增加一個無限循環(huán)使得一直能截圖。
調(diào)用打包程序生成專屬識別文字小程序
用pyinstaller庫實現(xiàn)小程序的打包,生成.exe文件,這樣就能隨時識別文字了。在命令行中用pyinstaller xxx.py
來打包生成exe文件,最后在生成的dist文件夾即可找到xxx.exe文件如下:
最后附上整個源代碼:
#引入截圖軟件,獲取文件到本地端,并識別圖片文字,最后打包 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)用通用文字識別(高精度版)?""" ????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
附圖圖片識別案例
到此這篇關(guān)于十行Python代碼實現(xiàn)文字識別功能的文章就介紹到這了,更多相關(guān)Python文字識別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python __dict__與dir()的區(qū)別詳解
下面小編就為大家?guī)硪黄赑ython __dict__與dir()的區(qū)別詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10Python利用pyodbc庫將文件信息插入Access數(shù)據(jù)庫
在日常編程工作中,我們經(jīng)常需要處理文件和文件夾,所以本文將介紹如何使用Python編程語言和wxPython庫創(chuàng)建一個簡單的文件瀏覽器界面,使用戶能夠選擇文件夾并將文件信息插入到Access數(shù)據(jù)庫中,需要的可以參考下2023-08-08詳解Python中sorted()和sort()的使用與區(qū)別
眾所周知,在Python中常用的排序函數(shù)為sorted()和sort()。本文將詳細(xì)介紹sorted()和sort()方法的代碼示例,并解釋兩者之間的區(qū)別,感興趣的可以了解一下2022-03-03Python3.5基礎(chǔ)之NumPy模塊的使用圖文與實例詳解
這篇文章主要介紹了Python3.5基礎(chǔ)之NumPy模塊的使用,結(jié)合圖文與實例形式詳細(xì)分析了Python3.5中Numpy模塊的原理、功能、使用方法及操作注意事項,需要的朋友可以參考下2019-04-04python: 判斷tuple、list、dict是否為空的方法
今天小編就為大家分享一篇python: 判斷tuple、list、dict是否為空的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10