使用python進行圖片的文字識別詳細代碼
安裝 Tesseract OCR
- Tesseract OCR 是一款由 Google 團隊開發(fā)的開源 OCR(Optical Character Recognition,光學字符識別)引擎,用于將圖片、PDF 等格式中的文本轉(zhuǎn)換為可編輯的文本格式。自 1985 年首次發(fā)布以來,它已經(jīng)經(jīng)歷了多個版本和改進,并成為目前最受歡迎的 OCR 引擎之一。
- Tesseract OCR 支持多種語言,包括英語、中文、日語、俄語等等,而且具有較高的準確率和穩(wěn)定性,尤其在處理大量文字的場景下表現(xiàn)突出。同時,該引擎還支持多線程處理,可以有效地提高識別速度。
- 下載地址:Home · UB-Mannheim/tesseract Wiki (github.com)
- Windows安裝包: https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-5.3.1.20230401.exe
注意: 這是Windows64位系統(tǒng)安裝包.
tesseract源碼的GitHub地址:tesseract-ocr/tesseract: Tesseract Open Source OCR Engine ,有能力的可以自行編譯源代碼
安裝過程
- 雙擊
tesseract-ocr-w64-setup-5.3.1.20230401.exe
安裝包進行安裝
首先是選擇語言界面,默認是英文, 沒有中文,有其他國家的語言可以選。
- 點
Next
- 點
I Agree
- 默認為這臺電腦進行安裝
- 因為需要在 Tesseract OCR 中識別中文簡體等非英語文本,所有需要安裝相應的語言數(shù)據(jù)。
可以只安裝特定語言, 比如中文簡體
- 選擇安裝路徑, 比如我選的是
D:\Tesseract-OCR
,待會配系統(tǒng)環(huán)境變量可能會用到這個安裝路徑。
- 創(chuàng)建快捷圖標
- 安裝中
- Next
- Finish
- 可以在開始菜單欄中看到
Console
- 點進去就能直接進入控制臺了
- 輸入:
tesseract --help
試試
因為我們不是直接使用命令去操作這個tesseract
, 而是使用python去操作它, 因此這個命令行就不用管他, 可以關掉。接下來為了讓python能直接使用它, 需要檢查系統(tǒng)的環(huán)境變量有沒有設置好。
在Windows操作系統(tǒng)中,環(huán)境變量用于存儲一些系統(tǒng)或用戶自定義的參數(shù)和路徑信息。這些參數(shù)和路徑信息可以幫助操作系統(tǒng)找到系統(tǒng)中安裝的軟件和程序,以便正確地運行它們。
- 重新開個命令窗口
輸入tesseract -v
查看版本號,你可能會出現(xiàn)上面的情況, 就是沒有配置好系統(tǒng)的環(huán)境變量,那就需要配置環(huán)境變量
配置系統(tǒng)的環(huán)境變量
- 以windows10的電腦為例, 打開電腦設置
- 點擊系統(tǒng), 找到關于,側(cè)邊有個
高級系統(tǒng)設置
, 點擊去
- 可以看到
環(huán)境變量
, 點進去
- 找到系統(tǒng)變量中的
Path
選中, 再點擊編輯
- 進入后點擊
新建
- 將安裝路徑復制進去,比如我安裝的路徑為
D:\Tesseract-OCR
- 復制進去后點擊
確認
- 重新進入到命令行中
輸入tesseract -v
, 若出現(xiàn)版本號則設置成功
OK, tesseract
算是安裝完成了, 接下來使用python去操作它了!
安裝python的第三方庫
Pytesseract庫
- Pytesseract 是一個 Python 的 OCR(Optical Character Recognition,光學字符識別)庫,可以用來將圖片、PDF 等文件中的文本轉(zhuǎn)換為可編輯的文本格式。它基于 Google 的 Tesseract OCR 引擎,支持多種語言,并且具有較高的準確率和穩(wěn)定性。
- 安裝 Pytesseract 庫可以使用 pip 工具快速完成。按照以下步驟進行操作:
- 打開命令行工具(Windows: cmd,Linux/macOS: Terminal)。
- 輸入以下命令來安裝 Pytesseract:
pip install pytesseract
- 等待安裝完成即可。
有一點需要注意的是,Pytesseract 庫依賴于 Tesseract OCR 引擎,因此在安裝 Pytesseract 之前請確保已安裝 Tesseract OCR。如果還沒有安裝 Tesseract OCR,請先下載和安裝它,然后再安裝 Pytesseract。
- 可以使用
pip list
命令列出你已經(jīng)安裝的python庫
Pillow庫
- Pillow 是一個功能強大的圖像處理庫,可以處理多種格式的圖像文件,支持圖像處理、圖像增強、圖像轉(zhuǎn)換等多種操作。
- 因為識別圖片需要用到PIL(Python Imaging Library)庫中的 Image 模塊
使用 pip 工具來安裝 Pillow 庫。以下是安裝 Pillow 庫的命令:
pip install pillow
安裝完成后,就可以在 Python 中使用 from PIL import Image
來進行圖像處理和操作了。
運行個demo
比如識別這張圖
import pytesseract from PIL import Image # 加載圖片 img = Image.open('images/demo.png') # 轉(zhuǎn)換為灰度圖像 img = img.convert('L') # 識別文本, 使用pytesseract庫進行OCR識別 text = pytesseract.image_to_string(img) # 輸出識別結(jié)果 print(text)
注意: 默認識別英文和數(shù)字
識別效果:
因為都是中文, 識別不出來
- 若要識別中文, 得進行配置 (前提是安裝tesseract時要選擇下載好中文簡體數(shù)據(jù)包才能進行使用)
import pytesseract from PIL import Image # 加載圖片 img = Image.open('images/demo.png') # 轉(zhuǎn)換為灰度圖像 img = img.convert('L') # 識別文本, 使用pytesseract庫進行OCR識別, 將語言設置成中文 text = pytesseract.image_to_string(img, lang='chi_sim') # 輸出識別結(jié)果 print(text)
這個識別的正確率還可以, 這取決于圖片的質(zhì)量和文字的清晰規(guī)整程度
OK, 上述只是簡單的小例子,更多用法可以自行探索, 還可以設置其他參數(shù)來提高文字的識別正確率!
- 使用說明文檔https://github.com/madmaze/pytesseract/blob/master/README.rst
比如下面是官方的說明例子:
from PIL import Image import pytesseract # 如果您的PATH中沒有tesseract可執(zhí)行文件,請包括以下內(nèi)容: pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>' # 示例 tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract' # 簡單的圖像轉(zhuǎn)字符串 print(pytesseract.image_to_string(Image.open('test.png'))) # 為了繞過pytesseract的圖像轉(zhuǎn)換,只需使用相對或絕對圖像路徑 # 注意:在這種情況下,您應該提供tesseract支持的圖像,否則tesseract將返回錯誤 print(pytesseract.image_to_string('test.png')) # 可用語言列表 print(pytesseract.get_languages(config='')) # 將法語文本圖像轉(zhuǎn)換為字符串 print(pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra')) # 使用包含多個圖像文件路徑列表的單個文件進行批處理 print(pytesseract.image_to_string('images.txt')) # 在一段時間后超時/終止tesseract作業(yè) try: print(pytesseract.image_to_string('test.jpg', timeout=2)) # 在2秒后超時 print(pytesseract.image_to_string('test.jpg', timeout=0.5)) # 半秒后超時 except RuntimeError as timeout_error: # tesseract處理已終止 pass # 獲取邊界框估計 print(pytesseract.image_to_boxes(Image.open('test.png'))) # 獲取詳細數(shù)據(jù),包括框、置信度、行和頁碼 print(pytesseract.image_to_data(Image.open('test.png'))) # 獲取有關方向和腳本檢測的信息 print(pytesseract.image_to_osd(Image.open('test.png'))) # 獲取可搜索的PDF pdf = pytesseract.image_to_pdf_or_hocr('test.png', extension='pdf') with open('test.pdf', 'w+b') as f: f.write(pdf) # pdf類型默認為bytes # 獲取HOCR輸出 hocr = pytesseract.image_to_pdf_or_hocr('test.png', extension='hocr') # 獲取ALTO XML輸出 xml = pytesseract.image_to_alto_xml('test.png')
以上就是使用python進行圖片的文字識別詳細代碼的詳細內(nèi)容,更多關于python 圖片文字識別的資料請關注腳本之家其它相關文章!
相關文章
PyCharm2020.1.1與Python3.7.7的安裝教程圖文詳解
這篇文章主要介紹了PyCharm2020.1.1與Python3.7.7的安裝教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08使用 Python 和 OpenCV 實現(xiàn)實時人臉識別功能
本文詳細講解了使用Python和OpenCV庫實行實時人臉識別的過程,首先,確保安裝OpenCV庫,并通過Haar級聯(lián)分類器進行人臉檢測,實現(xiàn)步驟包括打開攝像頭、圖像灰度轉(zhuǎn)換、人臉檢測及繪制矩形框,代碼示例清晰展示了從設置攝像頭到最終展示檢測結(jié)果的完整過程2024-11-11Python內(nèi)置函數(shù)round()的用法和注意事項詳解
這篇文章主要介紹了Python中round()函數(shù)的相關資料,包括其基本語法、使用示例和注意事項,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-03-03