想全面了解DeepSeek的看過來 【包郵】DeepSeek全攻略 人人需要的AI通識課 零基礎掌握DeepSeek的實用操作手冊指南【限量作者親筆簽名版售完即止】
玩轉DeepSeek這本就夠了 【自營包郵】DeepSeek實戰指南 deepseek從入門到精通實用操作指南現代科技科普讀物AI普及知識讀物人工智能使用教程中小學讀物京東超級618
Python初學者的入門教程 動手學深度學習 PyTorch版 李沐和阿斯頓·張等強強聯合之作!機器學習、深度學習、AI領域重磅教程! deepseek機器學習(異步圖書出品)
程序員要最先成為AI的主人 AI高手速成 DeepSeek讓你工作變輕松 deepseek從入門到精通實戰指南人工智能 異步圖書出品
pytesseract
是一個 Python 封裝庫,用于調用 Google 的 Tesseract-OCR 引擎,實現光學字符識別(OCR)功能。它允許開發者直接從 Python 中提取圖像中的文字內容,支持多種語言(包括中文)。
核心特點
- 跨平臺支持
Windows/macOS/Linux 均可使用。 - 多語言識別
支持 100+ 種語言(需安裝對應語言包)。 - 簡單易用
只需幾行代碼即可完成 OCR 識別。 - 與 PIL/Pillow/OpenCV 兼容
可直接處理常見的圖像對象。
安裝步驟
1. 安裝 Tesseract OCR 引擎
- Windows:
下載安裝程序:UB-Mannheim/tesseract - macOS:
brew install tesseract
- Linux (Debian/Ubuntu):
sudo apt install tesseract-ocr
2. 安裝語言包(以中文為例)
# Linux
sudo apt install tesseract-ocr-chi-sim # 簡體中文
sudo apt install tesseract-ocr-chi-tra # 繁體中文# macOS/Windows 需在安裝時勾選或手動下載語言包
3. 安裝 Python 庫
pip install pytesseract pillow
基礎用法示例
示例 1:識別圖像中的文字
from PIL import Image
import pytesseract# 設置 Tesseract 路徑(Windows 可能需要)
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'# 打開圖像并識別
image = Image.open("text_image.png")
text = pytesseract.image_to_string(image, lang='chi_sim') # 使用簡體中文print("識別結果:")
print(text)
示例 2:識別 OpenCV 處理的圖像
import cv2
import pytesseract# 讀取圖像 + 灰度化
img = cv2.imread("text_image.png")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# OCR 識別
text = pytesseract.image_to_string(gray, lang='eng+chi_sim') # 中英文混合
print(text)
高級功能
1. 獲取文字位置與置信度
from PIL import Image
import pytesseractimage = Image.open("text_image.png")
data = pytesseract.image_to_data(image, lang='eng', output_type=pytesseract.Output.DICT)# 打印每個檢測到的單詞信息
for i in range(len(data['text'])):if data['text'][i].strip():print(f"文本: {data['text'][i]}")print(f"位置: (x={data['left'][i]}, y={data['top'][i]})")print(f"置信度: {data['conf'][i]}\n")
2. 識別多語言混合文本
text = pytesseract.image_to_string(image, lang='eng+chi_sim+jpn') # 中英日混合
3. 調整 OCR 參數
# 配置參數示例
config = r'--oem 3 --psm 6 -c preserve_interword_spaces=1'
text = pytesseract.image_to_string(image, config=config)
oem
: OCR 引擎模式(0~3,推薦 3)psm
: 頁面分割模式(常用值):3
= 自動分頁(默認)6
= 假設為統一文本塊7
= 單行文本
圖像預處理技巧
提高識別準確率的常用預處理方法:
import cv2img = cv2.imread("text_image.png")# 1. 灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 2. 二值化
_, thresh = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)# 3. 降噪
denoised = cv2.fastNlMeansDenoising(thresh, h=10)# 4. 識別處理后的圖像
text = pytesseract.image_to_string(denoised, lang='chi_sim')
常見問題解決
-
路徑錯誤(Windows):
取消注釋并設置tesseract_cmd
路徑:pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
-
語言包缺失:
下載語言包(.traineddata
文件)放入tessdata
目錄(通常在 Tesseract 安裝路徑下)。 -
識別率低:
- 對圖像進行預處理(灰度化/二值化/降噪)
- 調整
psm
和oem
參數 - 使用更高分辨率的清晰圖像
應用場景
- 文檔掃描件文字提取
- 驗證碼識別(簡單類型)
- 車牌識別
- 圖像中的多語言翻譯
- 自動化數據錄入
通過結合 OpenCV 進行圖像預處理,pytesseract
能顯著提升復雜場景下的 OCR 準確率。