說一說場景,電腦不能裝qq 微信后,都沒有比較便捷的工具,不方便截圖提取文字。目前網(wǎng)上收了一下 ,主要是利用pytesseract進(jìn)行。這是一個基于 Google 的 Tesseract-OCR 引擎的 Python 封裝,是一個功能強(qiáng)大的 OCR 工具(OCR回是Optical Character Recognition的縮寫,光學(xué)字符識別 的意思。),能夠?qū)崿F(xiàn)圖像中文字的識別。無論是從圖片中提取文本信息,還是實(shí)現(xiàn)圖像轉(zhuǎn)文字的自動化處理,pytesseract 都能夠輕松勝任。
一、環(huán)境準(zhǔn)備,庫安裝
1. 安裝 pytesseract 庫
首先,我們需要安裝 pytesseract 庫。在安裝之前,請確保你已經(jīng)安裝了 Tesseract OCR 引擎。
下載地址:https://digi.bib.uni-mannheim.de/tesseract/

安裝tesseract ,檢驗(yàn)版本是否安裝tesseract -v

2. 讀取圖片
讀取圖片路徑若有漢字,會識別不到圖片,大家可以試試
pytesseract.pytesseract.tesseract_cmd = r'D:\soft\tesseract\tesseract.exe'
image_path = r'D:\develop\demo\screenshot.png'
im=Image.open(image_path)
3. 文字識別
方案①
text = pytesseract.image_to_string(im, lang='chi_sim')
print(text)
方案②
另外介紹一種通過cv2去識別圖片的方法,僅供參考,識別準(zhǔn)確率各不相同
pytesseract.pytesseract.tesseract_cmd = r'D:\soft\tesseract\tesseract.exe'
image_path = r'D:\develop\demo\screenshot.png'#路徑不能帶中午
image = cv2.imread(image_path)
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
text = pytesseract.image_to_string(gray_image, lang='chi_sim')
print(text)
方案③easyocr模塊
reader = easyocr.Reader(['ch_sim', 'en'])
result = reader.readtext(image_path)
for (bbox, text, prob) in result:
print(f' {text}')
安裝easyocr模塊,比較麻煩,需要下載對應(yīng)的大模型
安裝庫
pip install easyocr -i https://pypi.mirrors.ustc.edu.cn/simple/
執(zhí)行easyocr.Reader()時需要將模型加載到內(nèi)存中,需要一定時間,只需要運(yùn)行一次(會先下載列表中相關(guān)的語言包)??梢韵螺d程序到對應(yīng)目錄

不確定EasyOCR 模型,可以使用多久,目錄下有一個lic授權(quán),不知道有沒有定義。
對比 一下截圖,差異不大,主要還是根據(jù)圖片內(nèi)容的復(fù)雜性來說,會呈現(xiàn)出不同差異,導(dǎo)致提取的文字不準(zhǔn)確。easyocr 屬于進(jìn)階版吧,后期也將進(jìn)行優(yōu)化升級改造

后期將進(jìn)行截圖+識別方案,目前也沒有好的思考,比較簡單的方案就是截圖保存目錄后觸發(fā)提出功能,
最方面的還是微信方式,截圖后點(diǎn)擊翻譯,在旁邊提取對應(yīng)的文字,欲知后事如何,靜待后期分享吧!歡迎一起吐槽,一個不專業(yè)的IT狗學(xué)習(xí)開發(fā)的進(jìn)程