你一定用過那種“OCR神器”,可以把圖片中的文字提取出來,極大的提高工作效率。
今天,我們就來做一款實時截圖識別的小工具。顧名思義,執行程式時,可以實時的把你截出來的圖片中的文字識別出來。
下次,當你想要複製“百度文庫”中的內容時,不妨試試這個程式。
效果預覽
原始碼解析
1)等待使用者截圖
此處需要藉助貼圖神器(Snipaste)
其中“f1”是截圖的快捷鍵,“ctrl+c”是把截圖儲存到剪貼簿的快捷鍵。
如果使用qq截圖的話,需要把快捷鍵改為對應的“ctrl+alt+c”和“enter”
順便安利一波Snipaste,
必備效率神器
importkeyboard#利用截圖軟體(Snipaste)截圖到剪貼簿#輸入鍵盤的觸發事件keyboard.wait(hotkey="f1")keyboard.wait(hotkey="ctrl+c")time.sleep(0.1)上面這段程式碼執行之後,現在已經有一張圖片等待在剪貼簿裡了。
2)儲存截圖
利用PIL模組的ImageGrab,可以把剪貼簿裡的那張圖片,儲存到當前的目錄下,並命名為“screen.png”
fromPILimportImageGrab#把圖片從剪下板儲存到當前路徑image=ImageGrab.grabclipboard()image.save("screen.png")3)識別截圖中的文字
法一
pytesseract模組
優點:免費,易用
缺點:識別效果很一般,準確率不高
使用方法介紹:
1)pip install pytesseract
2)安裝 tesseract-ocr.exe 配置環境變數
3)修改pytesseract.py檔案,將tesseract_cmd指向Tesseract-OCR的tesseract.exe的絕對路徑。
參考文章
importpytesseractfromPILimportImage#法一:利用pytesseract模組#引數一:圖片#引數二:簡體中文text=pytesseract.image_to_string(Image.open("screen.png"),lang='chi_sim')print(text)來看看效果:
low的不行
果然,要想精度高,還得用百度API
法二
百度API介面
AI開放平臺文件中心
https://ai.baidu.com/ai-doc
檢視python語言的SDK文件
importpytesseractfromaipimportAipOcrfromPILimportImageGrab#法二:利用百度APIAPP_ID='你的AppID'API_KEY='你的ApiKey'SECRET_KEY='你的SecretKey'client=AipOcr(APP_ID,API_KEY,SECRET_KEY)#讀取圖片withopen("screen.png",'rb')asf:image=f.read()#呼叫百度API通用文字識別(高精度版),提取圖片中的內容text=client.basicAccurate(image)result=text["words_result"]foriinresult:print(i["words"])結果
如文章首圖:
我是總結
1)等待使用者截圖
2)儲存截圖到當前目錄
3)識別截圖中的文字
其中識別截圖文字,有兩種方法:
1)利用 pytesseract 模組
2)利用百度API介面
最新評論