首頁 > 軟體

Python實現識別圖片為文字的範例程式碼

2022-08-21 14:01:37

本來想著做一個將圖片識別為文字的小功能,本想到Google上面第一頁全是各種收費平臺的廣告。

這些平臺提供的基本都是讓我們通過呼叫相關的三方介面實現的,本著堅決不想花一分錢的態度,在論壇找有沒有可以免費解決的方案。

果然,有大佬早就做出開源框架pytesseract,差點讓我損失了一筆鉅款,哈哈~

這次只為實現將圖片識別為文字的業務功能,就不使用PyQt5做頁面應用了。後面若是需要做成UI應用朋友比較多,我有時間會將這個小工具封裝開發成一個PyQ5介面應用的小工具。

1、環境準備

還是老規矩吧,像一些比較有歧義的環境準備工作,我都會將我使用到的python庫的版本列出來,防止小夥伴們走一些彎路。

作業系統:windows7

python版本:3.8.10

pytesseract版本:0.3.9

首先需要安裝兩個三方模組,一個是PIL圖片處理庫,另一個是pytesseract識別文字用到的python庫。

pip install PIL -i https://pypi.tuna.tsinghua.edu.cn/simple/

pip install pytesseract -i https://pypi.tuna.tsinghua.edu.cn/simple/

安裝好這兩個python非標準庫以後,還有一個比較重要的操作就是需要額外的安裝一個工具Tesseract-OCR,這個工具實際上是我們用來識別圖片必須的一個工具。

為了防止丟失,我將Tesseract-OCR工具的安裝包和其需要的中文語言套件放在了百度網路硬碟中,在公眾號內回覆'Tesseract-OCR'工具可以獲取網路硬碟下載連結感興趣的小夥伴直接去下載就好了。

下載完成以後直接進行解壓即可,解壓完成後的檔案目錄是下面這樣的。

解壓完成後直接安裝Tesseract-OCR工具,雙擊開啟就可以進行安裝了,傻瓜式安裝即可。

下面這個是我在給大家測試的時候截圖的一張安裝過程中的圖。

安裝完成後,我們需要將上面下載的中文包加入到安裝好的Tesseract-OCR工具主目錄下面的tessdata資料夾中。

下面是我已經將中文語言套件放入到../Tesseract-OCR/tessdata檔案中了。

中文語言套件放好後,就可以直接進入下一步的操作了,那就是修改環境相關的設定,實際上只要需要一個相關的引數就OK了。

找到原生的python環境的安裝位置,找到我們前面安裝好的pytesseract的位置去修改引數一個叫做tesseract_cmd變數的值,具體操作是這樣的。

上面是我的pytesseract庫的安裝位置,找到之後開啟pytesseract.py檔案將tesseract_cmd變數的值替換為我們安裝的Tesseract-OCR工具的tesseract.exe應用程式的路徑。

預設Tesseract-OCR工具的安裝位置是下面這樣這個路徑,小夥伴們可以根據自己的位置設定。

C:/Program Files (x86)/Tesseract-OCR/tesseract.exe

這是我已經修改好的pytesseract.py檔案中tesseract_cmd變數的值。

tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'

至此,準備工作終於做完了,接下來就是我們大顯身手的時間了,來輕鬆實現一個圖片到文字的轉換吧!

2、業務實現

程式碼實現過程相當簡單,比較上面的安裝設定過程簡直就是小菜一碟了,匯入相關的python模組中實際上只需要一行程式碼就可以實現將圖片內容識別為文字了。

# 匯入python非標準模組
from PIL import Image
import pytesseract as pyt

# 讀取圖片中的文字內容
text = pyt.image_to_string(Image.open('chinese-image.jpg'), lang='chi_sim')

# 列印文字內容
print(text)

3、效果展示

為了測試一下效果,我用原生的畫圖軟體畫了一張圖,圖片上寫上文字,文字內容是:

大家好,我是 Python 集中營!下面是我的測試圖片。

下面執行上面的圖片識別程式碼塊產生的效果,直接一字不差的就將文字讀取的出來,簡直是滿滿的成就感,晚上可以好好睡個覺了,沒有bug的夢估計很甜!

# 大家好 , 我是 Python 集中營 !

到此這篇關於Python實現識別圖片為文字的範例程式碼的文章就介紹到這了,更多相關Python識別圖片為文字內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com