使用python進(jìn)行圖片的文字識別詳細(xì)代碼
安裝 Tesseract OCR
- Tesseract OCR 是一款由 Google 團(tuán)隊開發(fā)的開源 OCR(Optical Character Recognition,光學(xué)字符識別)引擎,用于將圖片、PDF 等格式中的文本轉(zhuǎn)換為可編輯的文本格式。自 1985 年首次發(fā)布以來,它已經(jīng)經(jīng)歷了多個版本和改進(jìn),并成為目前最受歡迎的 OCR 引擎之一。
- Tesseract OCR 支持多種語言,包括英語、中文、日語、俄語等等,而且具有較高的準(zhǔn)確率和穩(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安裝包進(jìn)行安裝

首先是選擇語言界面,默認(rèn)是英文, 沒有中文,有其他國家的語言可以選。
- 點
Next

- 點
I Agree

- 默認(rèn)為這臺電腦進(jìn)行安裝

- 因為需要在 Tesseract OCR 中識別中文簡體等非英語文本,所有需要安裝相應(yīng)的語言數(shù)據(jù)。

可以只安裝特定語言, 比如中文簡體

- 選擇安裝路徑, 比如我選的是
D:\Tesseract-OCR,待會配系統(tǒng)環(huán)境變量可能會用到這個安裝路徑。

- 創(chuàng)建快捷圖標(biāo)

- 安裝中

- Next

- Finish

- 可以在開始菜單欄中看到
Console

- 點進(jìn)去就能直接進(jìn)入控制臺了

- 輸入:
tesseract --help試試

因為我們不是直接使用命令去操作這個tesseract, 而是使用python去操作它, 因此這個命令行就不用管他, 可以關(guān)掉。接下來為了讓python能直接使用它, 需要檢查系統(tǒng)的環(huán)境變量有沒有設(shè)置好。
在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的電腦為例, 打開電腦設(shè)置

- 點擊系統(tǒng), 找到關(guān)于,側(cè)邊有個
高級系統(tǒng)設(shè)置, 點擊去

- 可以看到
環(huán)境變量, 點進(jìn)去

- 找到系統(tǒng)變量中的
Path選中, 再點擊編輯

- 進(jìn)入后點擊
新建

- 將安裝路徑復(fù)制進(jìn)去,比如我安裝的路徑為
D:\Tesseract-OCR

- 復(fù)制進(jìn)去后點擊
確認(rèn)

- 重新進(jìn)入到命令行中
輸入tesseract -v, 若出現(xiàn)版本號則設(shè)置成功

OK, tesseract算是安裝完成了, 接下來使用python去操作它了!
安裝python的第三方庫
Pytesseract庫
- Pytesseract 是一個 Python 的 OCR(Optical Character Recognition,光學(xué)字符識別)庫,可以用來將圖片、PDF 等文件中的文本轉(zhuǎn)換為可編輯的文本格式。它基于 Google 的 Tesseract OCR 引擎,支持多種語言,并且具有較高的準(zhǔn)確率和穩(wěn)定性。
- 安裝 Pytesseract 庫可以使用 pip 工具快速完成。按照以下步驟進(jìn)行操作:
- 打開命令行工具(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 來進(jìn)行圖像處理和操作了。
運行個demo
比如識別這張圖

import pytesseract
from PIL import Image
# 加載圖片
img = Image.open('images/demo.png')
# 轉(zhuǎn)換為灰度圖像
img = img.convert('L')
# 識別文本, 使用pytesseract庫進(jìn)行OCR識別
text = pytesseract.image_to_string(img)
# 輸出識別結(jié)果
print(text)
注意: 默認(rèn)識別英文和數(shù)字
識別效果:

因為都是中文, 識別不出來
- 若要識別中文, 得進(jìn)行配置 (前提是安裝tesseract時要選擇下載好中文簡體數(shù)據(jù)包才能進(jìn)行使用)
import pytesseract
from PIL import Image
# 加載圖片
img = Image.open('images/demo.png')
# 轉(zhuǎn)換為灰度圖像
img = img.convert('L')
# 識別文本, 使用pytesseract庫進(jìn)行OCR識別, 將語言設(shè)置成中文
text = pytesseract.image_to_string(img, lang='chi_sim')
# 輸出識別結(jié)果
print(text)

這個識別的正確率還可以, 這取決于圖片的質(zhì)量和文字的清晰規(guī)整程度
OK, 上述只是簡單的小例子,更多用法可以自行探索, 還可以設(shè)置其他參數(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)換,只需使用相對或絕對圖像路徑
# 注意:在這種情況下,您應(yīng)該提供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'))
# 使用包含多個圖像文件路徑列表的單個文件進(jìn)行批處理
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')))
# 獲取詳細(xì)數(shù)據(jù),包括框、置信度、行和頁碼
print(pytesseract.image_to_data(Image.open('test.png')))
# 獲取有關(guān)方向和腳本檢測的信息
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類型默認(rèn)為bytes
# 獲取HOCR輸出
hocr = pytesseract.image_to_pdf_or_hocr('test.png', extension='hocr')
# 獲取ALTO XML輸出
xml = pytesseract.image_to_alto_xml('test.png')
以上就是使用python進(jìn)行圖片的文字識別詳細(xì)代碼的詳細(xì)內(nèi)容,更多關(guān)于python 圖片文字識別的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
PyCharm2020.1.1與Python3.7.7的安裝教程圖文詳解
這篇文章主要介紹了PyCharm2020.1.1與Python3.7.7的安裝教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
淺談Python數(shù)學(xué)建模之線性規(guī)劃
線性規(guī)劃是運籌學(xué)中研究較早、發(fā)展較快、應(yīng)用廣泛、方法較成熟的一個重要分支,它是輔助人們進(jìn)行科學(xué)管理的一種數(shù)學(xué)方法。研究線性約束條件下線性目標(biāo)函數(shù)的極值問題的數(shù)學(xué)理論和方法2021-06-06
使用 Python 和 OpenCV 實現(xiàn)實時人臉識別功能
本文詳細(xì)講解了使用Python和OpenCV庫實行實時人臉識別的過程,首先,確保安裝OpenCV庫,并通過Haar級聯(lián)分類器進(jìn)行人臉檢測,實現(xiàn)步驟包括打開攝像頭、圖像灰度轉(zhuǎn)換、人臉檢測及繪制矩形框,代碼示例清晰展示了從設(shè)置攝像頭到最終展示檢測結(jié)果的完整過程2024-11-11
Python網(wǎng)絡(luò)爬蟲信息提取mooc代碼實例
這篇文章主要介紹了python網(wǎng)絡(luò)爬蟲與信息提取mooc,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03
Python內(nèi)置函數(shù)round()的用法和注意事項詳解
這篇文章主要介紹了Python中round()函數(shù)的相關(guān)資料,包括其基本語法、使用示例和注意事項,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03

