OCR 工具

Windows 中的 Tesseract Ocr(代碼示例教程)

發佈 2022年4月7日
分享:

什麼是Tesseract OCR?

Tesseract是一個可以在各種作業系統上使用的光學字符識別引擎。它是一個免費軟體,根據Apache許可證發佈。在本指南中,我將帶您了解我在Windows 10機器上安裝Tesseract的步驟。主要版本5是目前的穩定版本,並於2021年11月30日開始發佈5.0.0。


步驟 1:使用 .exe 文件在 Windows 10 中安裝 Tesseract OCR:

要安裝語言數據:sudo port install tesseract -<語言代碼> 在 MacPorts Tesseract 頁面的 Homebrew 中可以找到語言代碼列表。安裝 Tesseract OCR for Windows 的第一步是下載與您的機器操作系統對應的 .exe 安裝程序。

第 2 步:配置安裝

接下來,我們需要配置 Tesseract 安裝。如果您有信心且只想在 Windows 上使用默認語言設置為英文來運行 Tesseract OCR,那麼使用所有默認選項運行安裝程序應該就可以了。

安裝程式語言

這只是對話框和幫助資訊的語言。如果我們想要,我們可以在多種語言下運行 Tesseract OCR for Windows:

Windows 版 Tesseract OCR 的安裝程式語言

Tesseract OCR 設置

設置畫面建議在繼續安裝之前關閉所有其他應用程式。

Windows 安裝畫面上的 Tesseract OCR。

選擇安裝位置

接下來,我們將選擇安裝位置。在進行下一步之前,請確保將安裝位置複製到一個 .txt 文件中。安裝完成後,我們需要將安裝位置添加到我們機器的環境變數中。

選擇安裝位置。

選擇組件

預設情況下,ScrollView、培訓工具、快捷方式創建和語言數據都已選中。除非您有特定的原因不安裝這些,我們將希望保持選中所有這些選項。

預設的 Tesseract OCR Windows 安裝組件。

如果我們向下滾動並展開『額外的腳本數據』,我們會看到可以選擇下載和安裝額外的腳本數據。這有助於提高從某些腳本語言中提取文本的準確性。是否要安裝這些取決於您。

可選的腳本安裝元件。

選擇開始功能表資料夾

在安裝的最後一步,我們會被要求選擇 Tesseract OCR 的 Windows 快捷方式的開始功能表資料夾。我將其設定為預設名稱:'Tesseract-OCR'。

選擇 Tesseract OCR for Windows 快捷方式的開始菜單資料夾。

當我們點擊安裝後,Tesseract OCR for Windows 將開始安裝。下一步是將安裝路徑添加到我們機器的環境變數中。

步驟 3:將安裝路徑添加到環境變數

控制面板

要將安裝位置添加到我們的環境變數中,請轉到開始菜單並搜尋 "環境變數"。你應該會看到編輯系統環境變數的結果。如果沒有,你可以始終使用以下步驟:開始菜單 > 控制面板 > 編輯系統環境變數

搜索「環境變數」

系統屬性

當呈現“系統屬性”對話框時,我們需要確保點擊了“進階”標籤,然後點擊屏幕右下角的“環境變量”按鈕。

環境變數

在系統變數下,我們將點擊 編輯 按鈕。

當出現“編輯環境變量”屏幕時,點擊“新增”按鈕,並將我們在步驟2中複製的Tesseract OCR安裝路徑粘貼進去。完成後,點擊“確定”按鈕。

將 Tesseract OCR Windows 安裝目錄添加到環境變數

就是這樣。! 現在我們已經運行了 .exe 安裝程式,並將 Tesseract OCR for Windows 的安裝位置添加到我們的環境變數中,我們可以通過在測試圖像上運行 Tesseract 來測試我們的安裝是否正常運行。

第4步:在測試圖片上運行 Tesseract OCR for Windows

要測試是否成功安裝了 Tesseract OCR for Windows,請在您的計算機上打開命令提示符,然後運行 Tesseract 命令。您應該會看到一個簡要說明 Tesseract 使用選項的輸出。

檢查Tesseract OCR for Windows安裝成功

恭喜! 您已成功在機器上安裝了 Tesseract OCR for Windows。


使用 IronOCR 進行 OCR 工作的優勢:

IronOCR 提供 Mac、Windows、Linux、Azure 和 Docker 上的 Tesseract OCR,適用於:

  • .NET Framework 4.0 +
  • .NET Standard 2.0 +
  • .NET Core 2.0 +
  • .NET 5
  • Mono for macOS 和 Linux
  • Xamarin for macOS

IronOCR 使用最新的 Tesseract 5 引擎從所有主要的圖像和 PDF 格式中讀取文字、條碼和 QR 碼。此庫在幾分鐘內為桌面、控制台和 Web 應用程式添加 OCR 功能。它支持 127 種以上的國際語言。 授權條款 從 $749 開始。

第1步:安裝最新版本的IronOCR

安裝DLL

下載 IronOcr DLL 直接到您的機器。

安裝 NuGet

或者,您可以通過 NuGet 安裝它。

Install-Package IronOcr

步驟2:應用您的授權金鑰

使用程式碼設定您的 IronOCR 授權金鑰

將此程式碼添加到應用程式啟動時,在使用 IronOCR 之前執行。

IronOcr.Installation.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
IronOcr.Installation.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
IronOcr.Installation.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01"
VB   C#

第三步:測試您的金鑰

測試您的金鑰是否已正確安裝。

BoolresultIronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF0");
BoolresultIronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF0");
BoolresultIronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF0")
VB   C#

開始專案

// PM > Install-Package IronOcr
// using IronOcr;

var Ocr = new IronTesseract();

// Hundreds of languages available
Ocr.Language = OcrLanguage.English;

using (var Input = new OcrInput())
{
   OcrInput.Add(@"img\example.tiff")
   // Input.DeNoise();  optional 
   // Input.Deskew();   optional 

   IronOcr.OcrResult Result = Ocr.Read(Input);

   Console.WriteLine(Result.Text);

   // Explore the OcrResult using IntelliSense
}
// PM > Install-Package IronOcr
// using IronOcr;

var Ocr = new IronTesseract();

// Hundreds of languages available
Ocr.Language = OcrLanguage.English;

using (var Input = new OcrInput())
{
   OcrInput.Add(@"img\example.tiff")
   // Input.DeNoise();  optional 
   // Input.Deskew();   optional 

   IronOcr.OcrResult Result = Ocr.Read(Input);

   Console.WriteLine(Result.Text);

   // Explore the OcrResult using IntelliSense
}
' PM > Install-Package IronOcr
' using IronOcr;

Dim Ocr = New IronTesseract()

' Hundreds of languages available
Ocr.Language = OcrLanguage.English

Using Input = New OcrInput()
   OcrInput.Add("img\example.tiff") IronOcr.OcrResult Result = Ocr.Read(Input)

   Console.WriteLine(Result.Text)

' ' Explore the OcrResult using IntelliSense
End Using
VB   C#

如何在 .NET 的 C# 中使用 Tesseract OCR?

  • 安裝 Google Tesseract 和 IronOCR for .NET 進入 Visual Studio
  • 檢查 C# 中的最新構建
  • 審查準確性和圖像兼容性
  • 測試性能和 API 功能
  • 考慮多語言支持

.NET OCR 使用範例 — 從圖像中提取文本的 C# 代碼示例

使用 NuGet 包管理器將 IronOCR NuGet 包安裝到您的 Visual Studio 方案中。

// PM > Install-Package IronOcr
// using IronOcr;

var Ocr = new IronTesseract();

// Hundreds of languages available
Ocr.Language = OcrLanguage.English;

using (var Input = new OcrInput())
{
   OcrInput.Add(@"img\example.tiff")
   // Input.DeNoise();  optional 
   // Input.Deskew();   optional 

   IronOcr.OcrResult Result = Ocr.Read(Input);

   Console.WriteLine(Result.Text);

   // Explore the OcrResult using IntelliSense
}
// PM > Install-Package IronOcr
// using IronOcr;

var Ocr = new IronTesseract();

// Hundreds of languages available
Ocr.Language = OcrLanguage.English;

using (var Input = new OcrInput())
{
   OcrInput.Add(@"img\example.tiff")
   // Input.DeNoise();  optional 
   // Input.Deskew();   optional 

   IronOcr.OcrResult Result = Ocr.Read(Input);

   Console.WriteLine(Result.Text);

   // Explore the OcrResult using IntelliSense
}
' PM > Install-Package IronOcr
' using IronOcr;

Dim Ocr = New IronTesseract()

' Hundreds of languages available
Ocr.Language = OcrLanguage.English

Using Input = New OcrInput()
   OcrInput.Add("img\example.tiff") IronOcr.OcrResult Result = Ocr.Read(Input)

   Console.WriteLine(Result.Text)

' ' Explore the OcrResult using IntelliSense
End Using
VB   C#

IronOCR Tesseract for C#

使用 IronOCR,所有的 Tesseract 安裝都完全通過 NuGet Package Manager 進行。

Install-Package IronOcr

IronOCR Tesseract 中的 Tesseract 5 API

截至目前,IronTesseract 是唯一已知的 Tesseract 5 為 .NET Framework 或 Core 的實現。

// using IronOcr;

var Ocr = new IronTesseract(); // nothing to configure

using (var Input = new OcrInput(@"images\image.png"))
{
   var Result = Ocr.Read(Input);

   Console.WriteLine(Result.Text);

}
// using IronOcr;

var Ocr = new IronTesseract(); // nothing to configure

using (var Input = new OcrInput(@"images\image.png"))
{
   var Result = Ocr.Read(Input);

   Console.WriteLine(Result.Text);

}
' using IronOcr;

Dim Ocr = New IronTesseract() ' nothing to configure

Using Input = New OcrInput("images\image.png")
Dim Result = Ocr.Read(Input)

   Console.WriteLine(Result.Text)

End Using
VB   C#

IronOCR 中的 Tesseract 4 API Tesseract

// using IronOcr;

var Ocr = new IronTesseract();

Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract4;

using (var Input = new OcrInput(@"images\image.png"))

{

   var Result = Ocr.Read(Input);

   Console.WriteLine(Result.Text);

}
// using IronOcr;

var Ocr = new IronTesseract();

Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract4;

using (var Input = new OcrInput(@"images\image.png"))

{

   var Result = Ocr.Read(Input);

   Console.WriteLine(Result.Text);

}
' using IronOcr;

Dim Ocr = New IronTesseract()

Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract4

Using Input = New OcrInput("images\image.png")


Dim Result = Ocr.Read(Input)

   Console.WriteLine(Result.Text)

End Using
VB   C#

為什麼 IronOCR 比 Tesseract 更好:

準確性

TESSERACT:

如果 Tesseract 遇到一個旋轉、傾斜、低 DPI、掃描的圖像或具有背景噪音的圖像,Tesseract 幾乎無法從該圖像中獲取數據。此外,Tesseract 還會花費很長時間來處理該文件,並最終提供無意義的信息。

IRONOCR:

IronOCR 消除了這個頭痛問題。用戶通常只需進行最小的配置,就可以達到99.8-100%的準確率。

圖片相容性

TESSERACT:

只接受 Leptonica PIX 圖像格式,它是 C# 中的 IntPtr C++ 對象。PIX 對象不是托管內存——在 C# 中未謹慎處理它們會導致內存洩漏。

IRONOCR:

影像具有記憶體管理功能。支援 PDF 和 Tiff 格式,包含 System.Drawing、Stream 和 Byte Array。

廣泛的影像支援:

  • PDF 文件
  • PDF 頁面
  • 多幀 TIFF 文件
  • JPEG & JPEG2000
  • GIF
  • PNG
  • System.Drawing.Image
  • 二進位影像數據 (位元組 [])
  • 還有更多...

性能

TESSERACT:

如果進行正確調試並使用 Photoshop 或 ImageMagick 對輸入圖像進行預處理,Google Tesseract 可以執行快速且準確的結果。

IRONOCR:

IronOcr .NET Tesseract DLL 幾乎可以立即準確且快速地處理大部分圖像。 我們實現了多執行緒功能,可以利用大多數機器現在使用的多核處理器。 即使是低分辨率圖像,通常在你的程式中也能具有高精度的工作效果。 不需要使用PhotoShop。

API

TESSERACT:

我們有兩個免費選擇:

  • 使用互通層——許多在 GitHub 上找到的版本已過期,有未解決的問題、記憶體洩漏和控制台警告。可能不支持 .NET Core 或 Standard。
  • 使用命令行 EXE——難以部署,且經常被病毒掃描器和安全策略中斷。

IRONOCR:

一個名為IronTesseract的受控和測試的.NET函式庫。

有完整的文件和IntelliSense支援。

語言

TESSERACT:

僅支持100種語言。

IRONOCR:

支持127种以上的语言。


結論

Tesseract 是一個優秀的 C++ 開發資源,但它並不是一個完整的 .NET 光學字符识别库。掃描或拍攝的圖像需要經過處理,使其正交、標準化、高解析度並且無數字噪音,這樣 Tesseract 才能準確地工作。

相比之下,IronOCR 只需一行程式碼就能做到這些甚至更多。的確,IronOCR 使用 Tesseract 為其內部OCR引擎,一個非常精細調整的Tesseract,為C#構建,並標準地添加了許多性能改進和功能。

< 上一頁
線上OCR轉換器 — 免費線上工具
下一個 >
Windows 11 中的 OCR(免費線上工具)

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 2,433,305 查看許可證 >