天天看點

Tesseract——文字識别

作者:青銅算法進階之路

Tesseract OCR是一款開源的光學字元識别(Optical Character Recognition,OCR)引擎。OCR是一項技術,旨在将印刷或手寫文本從圖像或掃描文檔中自動轉換為可編輯和可搜尋的文本資料。

Tesseract OCR最初由惠普實驗室開發,在2005年以開源的形式釋出。後來,Google接手了該項目,并對其進行了繼續開發和改進。目前,Tesseract OCR已成為最受歡迎和廣泛使用的OCR引擎之一。

Tesseract OCR的主要特點包括:

  • 多語言支援:Tesseract OCR支援超過100種語言的文字識别,可以應用于各種語言環境。
  • 高精度識别:Tesseract OCR通過訓練和改進,具有較高的文本識别準确度,并且在處理清晰、高品質的圖像時表現良好。
  • 擴充性:Tesseract OCR提供了易于內建和擴充的接口,使開發人員可以根據需要自定義并添加功能。
  • 支援多種平台:Tesseract OCR可在多個作業系統上運作,包括Windows、Linux、macOS等。
  • 使用Tesseract OCR進行文字識别時,通常需要提供輸入圖像,并選擇适當的識别語言。該引擎會嘗試從圖像中提取出文本,并将其轉換為可編輯和可搜尋的文本資料,以便進一步處理和使用。

需要注意的是,雖然Tesseract OCR在很多情況下表現出色,但在處理低品質圖像、手寫文字或具有複雜布局的文檔時,可能會面臨挑戰并有一定的識别錯誤。在這些情況下,可能需要進行預處理或應用其他技術來提高識别準确度。

安裝須知

安裝pytesseract庫和Tesseract OCR引擎

安裝的時候注意選擇中文包

本人安裝目錄:"D:\APP\OCR"

配置tesseract運作檔案

D:\anaconda\envs\ocr_lhy\Lib\site-packages\pytesseract\pytesseract.py 找到檔案:

tesseract_cmd = 'tesseract'
#修改為
tesseract_cmd = "D:\APP\OCR\\tesseract.exe"           

案例實戰

import cv2 as cv
import numpy as np
import pytesseract
# 圖像讀取
source = cv.imread("test_images/t3.png")
#灰階圖
gray = cv.cvtColor(source,cv.COLOR_BGR2GRAY)
# 執行二值化操作
ret1,th1 = cv.threshold(gray,0,255,cv.THRESH_OTSU)
# 使用Tesseract進行文字識别
text = pytesseract.image_to_string(th1 )
# 列印識别結果
print(text)
 # 圖像顯示
cv.imshow("source", source)
cv.imshow("gray", gray)
cv.imshow('Binary Image', th1)
# 等待操作
cv.waitKey(0)
cv.destroyAllWindows()           
Tesseract——文字識别

原圖

Tesseract——文字識别

圖檔預處理

識别的結果如下:

Tesseract——文字識别

識别結果

繼續閱讀