首頁>科技>

你一定用過那種“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介面

最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 一年存款額高達1個億,上架銀行15家,銀戶通憑什麼迅猛崛起?