[OpenCV][Python]手把教如何使用Tesseract OCR辨識

更新於 發佈於 閱讀時間約 1 分鐘

以下是如何使用 Tesseract OCR 來辨識圖像中的文字的教學。

涵蓋了安裝 Tesseract、基本使用方法,以及如何在 Python 中進行整合。

1. 安裝 Tesseract

首先,需要安裝 Tesseract OCR 工具。這裡提供針對 Windows、macOS 和 Linux 的安裝步驟。

Windows

前往 Tesseract GitHub 頁面下載最新版的 Windows 安裝包。

  1. 安裝完成後,將 Tesseract 的安裝路徑添加到系統的環境變數中(例如:C:\Program Files\Tesseract-OCR)。
    將 Tesseract 的安裝路徑添加到系統的環境變數中,主要是為了讓系統在任何地方都能夠直接找到並執行 Tesseract
環境變數新增路徑

環境變數新增路徑

  1. 驗證安裝: 打開命令提示字元 (Command Prompt),輸入 tesseract -v 應顯示 Tesseract 的版本資訊。

macOS

在 macOS 上可以使用 Homebrew 進行安裝:

brew install tesseract

Linux (如 Ubuntu)

在 Linux 系統上可以通過 apt 進行安裝:

sudo apt install tesseract-ocr

2. 安裝 Tesseract 的 Python 介面 (pytesseract)

接下來,我們需要安裝 pytesseract,這是一個 Python 的介面,用於與 Tesseract 一起使用。

pip install pytesseract

還需要安裝 OpenCV 或 PIL(Pillow) 來讀取圖像文件。這裡我們使用 OpenCV:

pip install opencv-python

3. 基本的 Tesseract OCR 使用方式

現在,假設我們有一個名為 image.png 的圖像文件,我們將使用 Tesseract 來辨識圖像中的文字。

命令行使用 Tesseract

在命令行中,你可以簡單地運行 Tesseract 命令來辨識圖像:

tesseract image.png output

這會將 image.png 中的文字提取出來並儲存到 output.txt 文件中。

raw-image


指定語言

如果你想要指定 Tesseract 使用特定語言來進行 OCR,可以使用 -l 參數。例如,指定繁體中文:

tesseract image_1.png output -l chi_tra

這會要求 Tesseract 使用繁體中文語言包來進行文字識別。事先需先下載語言包放到指令資料夾,語言包路徑

語言包指定路徑

語言包指定路徑

看起來對於七這個文字辨識不佳,但螃蟹好棒阿~ 辨識的不錯

raw-image

4. 在 Python 中使用 Tesseract OCR

接下來,我們將示範如何在 Python 中使用 Tesseract OCR。

範例程式碼

import cv2
import pytesseract

# 如果 Tesseract 沒有在系統路徑,指定其安裝路徑
# Windows 上可能需要以下設置:
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

# 讀取圖像文件
image = cv2.imread('image.png')

# 使用 Tesseract 辨識圖像中的文字
text = pytesseract.image_to_string(image, lang='chi_tra') # 'chi_tra' 是繁體中文的語言代碼

# 打印辨識出的文字
print(text)

但直接讀圖,螃蟹就辨識不了。

raw-image

5. 圖像處理前的預處理(提高 OCR 準確性)

為了提高 Tesseract 的辨識效果,我們可以在進行 OCR 之前對圖像進行預處理。例如,調整對比度、灰度化等。

範例:使用 OpenCV 對圖像進行預處理

import cv2
import pytesseract

# 讀取圖像
image = cv2.imread('image.png')

# 將圖像轉為灰度
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 將灰度圖像進行二值化處理(黑白圖像)
_, threshold_image = cv2.threshold(gray_image, 150, 255, cv2.THRESH_BINARY)

# 使用 Tesseract 進行 OCR
text = pytesseract.image_to_string(threshold_image, lang='chi_tra')

# 打印辨識出的文字
print(text)

只多辨識出一個 '螃' 字,看來蟹這個字,比較難讀

raw-image

原因是因為在 CMD 下直接執行 Tesseract 時,它可能自動使用了一些預設的參數或處理方式,而 Python 使用 pytesseract 調用 Tesseract 時,這些參數需要明確指定。

config = '--oem 2 --psm 3' 
text = pytesseract.image_to_string(threshold_image, lang='chi_tra', config=config)

Tesseract 的 --oem 參數指定了使用哪種 OCR 引擎模型。具體來說,--oem 參數有以下幾個選項:

  • 0: 使用傳統的 OCR 引擎 (基於圖像特徵的引擎)。
  • 1: 使用基於 LSTM(長短期記憶網絡)的新 OCR 引擎。
  • 2: 同時使用傳統引擎和 LSTM 引擎,進行混合模式的識別。
  • 3: 僅使用 LSTM 引擎(Tesseract 4.0 以後的預設模式)。

使用了--oem 2 才可辨識到 '螃'

raw-image

6. 檢測多語言文字

如果圖像中包含多種語言的文字,可以讓 Tesseract 同時檢測多種語言。比如你有一個包含英文和繁體中文的文件,你可以同時指定這兩個語言。

text = pytesseract.image_to_string(image, lang='eng+chi_tra')
print(text)
raw-image


謝謝大家~ 底下有相關文章可以參考,若還需要補充或測試什麼 也歡迎留言


其他相關文章

[OpenCV][Python]實測tesseract OCR的Best模型與Fast模型

[OpenCV][Python]實測tesseract OCR縮放到最佳高度可提高辨識率嗎?

[OpenCV][Python]實測tesseract OCR增加間隔可提升辨識率

[OCR][Python]tesseract 辨識模型Fine tune

[OCR][Python]測試tesseract與easyOCR誰比較準跟快

[OCR_應用]Tesseract-OCR_Config說明

[OCR_應用]Tesseract-OCR_擷取字元面積

留言
avatar-img
留言分享你的想法!
12-avatar-img
2024/11/26
您好請問在第三步的時候遇到該狀況,想請問我是漏做了哪些步驟呢?
螃蟹_crab-avatar-img
發文者
2024/11/26
12 你在那個開啟cmd的路徑,有包含那張圖片的檔案嗎?
avatar-img
螃蟹_crab的沙龍
149會員
284內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。 興趣是攝影,踏青,探索未知領域。 人生就是不斷的挑戰及自我認清,希望老了躺在床上不會後悔自己什麼都沒做。
螃蟹_crab的沙龍的其他內容
2025/03/24
在影像處理或機器學習的應用中,我們常常需要將影片逐幀擷取出來,進一步進行辨識或分析。 本篇教學將示範如何使用 Python + OpenCV 來: ✅ 讀取 MP4 影片 測試影片可由下方超連結下載,從file-examples.com下載 file-examples.com 是一個 免費提
Thumbnail
2025/03/24
在影像處理或機器學習的應用中,我們常常需要將影片逐幀擷取出來,進一步進行辨識或分析。 本篇教學將示範如何使用 Python + OpenCV 來: ✅ 讀取 MP4 影片 測試影片可由下方超連結下載,從file-examples.com下載 file-examples.com 是一個 免費提
Thumbnail
2024/10/11
本文將指導你如何修改現有的 OpenCV 程式碼,使其利用 CUDA 加速進行深度神經網絡(DNN)推理,如超分辨率圖像放大任務。這將顯著提升運行速度,特別是在高分辨率圖像處理中。 在CMake上這選項要開,才可支援DNN模組。 CMake編譯OpenCV教學文 連結 [OpenCV][Py
Thumbnail
2024/10/11
本文將指導你如何修改現有的 OpenCV 程式碼,使其利用 CUDA 加速進行深度神經網絡(DNN)推理,如超分辨率圖像放大任務。這將顯著提升運行速度,特別是在高分辨率圖像處理中。 在CMake上這選項要開,才可支援DNN模組。 CMake編譯OpenCV教學文 連結 [OpenCV][Py
Thumbnail
2024/10/10
OpenCV 提供了專門針對 CUDA 優化的模組,這些模組使用 cv2.cuda 命名空間,並且可以直接使用 GPU 進行加速。,cv2.cuda 模塊需要在 OpenCV 編譯時啟用 CUDA 支援才能使用。 本文主要比較經過CMAKE重新編譯OpenCV使其支援Cuda,原OpenCV只支援
Thumbnail
2024/10/10
OpenCV 提供了專門針對 CUDA 優化的模組,這些模組使用 cv2.cuda 命名空間,並且可以直接使用 GPU 進行加速。,cv2.cuda 模塊需要在 OpenCV 編譯時啟用 CUDA 支援才能使用。 本文主要比較經過CMAKE重新編譯OpenCV使其支援Cuda,原OpenCV只支援
Thumbnail
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
以下是如何使用 Tesseract OCR 來辨識圖像中的文字的教學。 涵蓋了安裝 Tesseract、基本使用方法,以及如何在 Python 中進行整合。 1. 安裝 Tesseract 首先,需要安裝 Tesseract OCR 工具。這裡提供針對 Windows、macOS 和 Linu
Thumbnail
以下是如何使用 Tesseract OCR 來辨識圖像中的文字的教學。 涵蓋了安裝 Tesseract、基本使用方法,以及如何在 Python 中進行整合。 1. 安裝 Tesseract 首先,需要安裝 Tesseract OCR 工具。這裡提供針對 Windows、macOS 和 Linu
Thumbnail
在tesseract-ocr辨識應用中,建議的留白邊框為10pixl,若Label列印的太剛好,沒有任何的邊框時,就會辨識不到文字。 本文將帶大家如何讓圖像增加邊框。 結果圖 示意的比較誇張,我讓邊框增加100pixl,圖片大小原為211*80。
Thumbnail
在tesseract-ocr辨識應用中,建議的留白邊框為10pixl,若Label列印的太剛好,沒有任何的邊框時,就會辨識不到文字。 本文將帶大家如何讓圖像增加邊框。 結果圖 示意的比較誇張,我讓邊框增加100pixl,圖片大小原為211*80。
Thumbnail
本文將說明如何去辨識出圖片文字​位置及高寬。
Thumbnail
本文將說明如何去辨識出圖片文字​位置及高寬。
Thumbnail
微調(Fine tune)是深度學習中遷移學習的一種方法,其中預訓練模型的權重會在新數據上進行訓練。 本文主要介紹如何使用新的訓練圖檔在tesseract 辨識模型進行Fine tune 有關於安裝的部分可以參考友人的其他文章 Tesseract OCR - 繁體中文【安裝篇】 將所有資料
Thumbnail
微調(Fine tune)是深度學習中遷移學習的一種方法,其中預訓練模型的權重會在新數據上進行訓練。 本文主要介紹如何使用新的訓練圖檔在tesseract 辨識模型進行Fine tune 有關於安裝的部分可以參考友人的其他文章 Tesseract OCR - 繁體中文【安裝篇】 將所有資料
Thumbnail
學習如何將掃描的PDF轉換為可搜索文本,並高效管理和查找文件。探索先進的OCR技術如何提升文檔處理效率。
Thumbnail
學習如何將掃描的PDF轉換為可搜索文本,並高效管理和查找文件。探索先進的OCR技術如何提升文檔處理效率。
Thumbnail
在本文中,我們將瞭解如何將掃描的PDF轉換為可搜索文本,並高效管理和查找文件。探索先進的OCR技術如何提升文檔處理效率。
Thumbnail
在本文中,我們將瞭解如何將掃描的PDF轉換為可搜索文本,並高效管理和查找文件。探索先進的OCR技術如何提升文檔處理效率。
Thumbnail
平時都在用tesseract來辨識OCR的部分,在網路上也常常聽說easyOCR比tesseract好用,就拿之前測試的OCR素材來比較看看囉。 以下輸入同樣圖片直接測試,並非絕對誰就比較準,只單純測試數字含英文的部分。 圖片素材就是15碼(英文加數字),檔名為OCR正確結果
Thumbnail
平時都在用tesseract來辨識OCR的部分,在網路上也常常聽說easyOCR比tesseract好用,就拿之前測試的OCR素材來比較看看囉。 以下輸入同樣圖片直接測試,並非絕對誰就比較準,只單純測試數字含英文的部分。 圖片素材就是15碼(英文加數字),檔名為OCR正確結果
Thumbnail
EasyOCR是一個能夠幫助你對圖片中的文字進行辨識的工具,透過進階分析,可以應用在文件掃描、自動化數據輸入、發票掃描等領域。本章節將介紹如何安裝、引用模型、進行文字辨識、以及辨識結果的分析。透過學習,你可以建立屬於自己的文字辨識系統。
Thumbnail
EasyOCR是一個能夠幫助你對圖片中的文字進行辨識的工具,透過進階分析,可以應用在文件掃描、自動化數據輸入、發票掃描等領域。本章節將介紹如何安裝、引用模型、進行文字辨識、以及辨識結果的分析。透過學習,你可以建立屬於自己的文字辨識系統。
Thumbnail
Google Tesseract Config說明,程式範例實際修改示範 前言 Tesseract 的 config 檔案用於指定 OCR 引擎的設定和參數。這些參數可以影響文本識別的結果 本文將彙整常用參數調整,並呈現不同參數出現不同的辨識結果 官網Tesseract OCR參數說明連結
Thumbnail
Google Tesseract Config說明,程式範例實際修改示範 前言 Tesseract 的 config 檔案用於指定 OCR 引擎的設定和參數。這些參數可以影響文本識別的結果 本文將彙整常用參數調整,並呈現不同參數出現不同的辨識結果 官網Tesseract OCR參數說明連結
Thumbnail
使用Google Tesseract應用,擷取圖像的OCR並將讀取到的字元標註在原圖上 光學字元辨識功能 (Optical character recognition,光學字符辨識) 可以將影像中特徵範圍內的文本轉換為數字形式的文本。使用前必須安装Google Tesseract並更新
Thumbnail
使用Google Tesseract應用,擷取圖像的OCR並將讀取到的字元標註在原圖上 光學字元辨識功能 (Optical character recognition,光學字符辨識) 可以將影像中特徵範圍內的文本轉換為數字形式的文本。使用前必須安装Google Tesseract並更新
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News