10幾行代碼,用python打造實時截圖識別OCR


你一定用過那種“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)保存截圖

windows安裝PIL

打開cmd
進入python的安裝目錄中的Scripts目錄:
輸入pip install pillow
安裝成功

 

利用PIL模塊的ImageGrab,可以把剪貼板里的那張圖片,保存到當前的目錄下,並命名為“screen.png”

from PIL import ImageGrab

# 把圖片從剪切板保存到當前路徑

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的絕對路徑。

參考文章

見評論第一條

importpytesseract

fromPILimportImage

# 法一:利用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文檔

 

 點擊右上角(控制台),登錄自己的百度賬號,創建“文字識別”的應用

 

 

importpytesseract

fromaipimportAipOcr

fromPILimportImageGrab

# 法二:利用百度API

APP_ID ='你的 App ID'

API_KEY ='你的 Api Key'

SECRET_KEY ='你的 Secret Key'

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接口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM