在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
在進行光學字元識別時,開發人員經常需要在 Tesseract OCR 工具和 Microsoft OCR 引擎之間進行選擇。(光學字符識別)在 C# 中。 儘管具有不同的能力、效率、整合度和易用性,這兩個都是有效的 OCR 工具,用於從照片或掃描文件中提取文字。 在 C# 開發框架中,我們將在本文中徹底檢視不同 OCR 工具(如 Tesseract 與 Microsoft OCR)的優點、缺點及適用性。
光學字符識別稱為OCR。 這是一項技術,使得將各種文件格式——如掃描的影像文件、PDF 文件或數位相機照片——轉換為可編輯和可搜尋的資料成為可能。 要將圖像的形狀和圖案轉換為機器可讀的文本,不同的 OCR 工具如 Google Cloud Vision 或 Google Vision OCR 會分析這些圖像。 通過使用此技術,用戶可以從照片中提取文本,並像處理數位文檔一樣編輯、搜索和更改內容。
Tesseract OCR是一個開源的光學字符識別(光學字符識別)引擎,有時也稱為 Tesseract。 Tesseract 最初是在 1980 年代由惠普實驗室創建的,現在由 Google 維護,是當今最受歡迎的 OCR 引擎之一。
Tesseract 的主要功能是識別圖片中包含的文字或處理掃描文件,並將其轉換為機器可讀的文字。 這使得文字變得可編輯、可搜尋和可操作,允許用戶從各種來源提取文字,包括掃描文檔分析、照片和 PDF 文件。
在您的電腦上安裝 Tesseract OCR 是第一步。您可以在 Tesseract 的官方 GitHub 資料庫中獲取 Tesseract 安裝程式:https://github.com/tesseract-ocr/tesseract。
要在您的電腦上安裝 Tesseract OCR,請按照專為您的操作系統設計的設定指導進行操作。(Windows、macOS 或 Linux). 在安裝 Tesseract OCR 後,使用 Visual Studio 的 NuGet 套件管理器將 Tesseract.NET 包裝器添加到您的 C# 專案中。
在 Visual Studio 中開啟您的 C# 專案後,導航至工具 -> NuGet 封裝管理員 -> 管理 NuGet 封裝以解決方案。 您應該能夠透過在 NuGet 套件管理器中搜尋 "Tesseract" 來找到名為 "Tesseract" 或 "Tesseract.NET" 的套件。 要將套件包含在您的專案中,選擇它並點擊安裝。
在安裝 Tesseract.NET 包裝器後,您必須在 C# 專案中設定 Tesseract,以指定 Tesseract OCR 可執行檔及語言資料檔案的位置。 這是個例子:
using Tesseract;
class Program
{
static void Main(string [] args)
{
using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
{
using (var img = Pix.LoadFromFile("image.png"))
{
using (var page = engine.Process(img))
{
var text = page.GetText();
Console.WriteLine(text);
}
}
}
}
}
using Tesseract;
class Program
{
static void Main(string [] args)
{
using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
{
using (var img = Pix.LoadFromFile("image.png"))
{
using (var page = engine.Process(img))
{
var text = page.GetText();
Console.WriteLine(text);
}
}
}
}
}
Imports Tesseract
Friend Class Program
Shared Sub Main(ByVal args() As String)
Using engine = New TesseractEngine("path_to_tesseract_folder", "eng", EngineMode.Default)
Using img = Pix.LoadFromFile("image.png")
Using page = engine.Process(img)
Dim text = page.GetText()
Console.WriteLine(text)
End Using
End Using
End Using
End Sub
End Class
為了完成此操作,請在 TesseractEngine 构造函數選項中提供您的 Tesseract 安裝目錄的位置以及您希望使用的語言。 將"eng"替換為您希望使用的語言或語言的語言代碼(例如,「eng」 表示英文)將 "path_to_tesseract_folder" 替換為 Tesseract 安裝目錄的實際路徑。
在您的 C# 專案中設定 Tesseract 之後,您現在可以利用其 OCR 功能從圖片中提取文字。 一旦使用Pix類加載圖片後,就可以使用TesseractEngine實例來處理圖片,以提取文本或對圖像文件運行OCR,將「image.png」替換為圖像文件的路徑。
Microsoft 的 Cognitive Services 套件包括Microsoft OCR,有時也稱為 Microsoft 光學字符識別。 Microsoft Azure 提供基於雲端的光學字符識別(光學字符識別)能以增強的文字識別功能從文件和照片中提取文字的解決方案。 Microsoft OCR 使用深度神經網絡和機器學習技術從各種來源識別文字,準確性極高。
多語言支援:Microsoft OCR 像其他 OCR 程式一樣,允許多語言識別,使用戶可以從各種語言和字符集的照片中提取文本。 由於支援多語言,它適合各種語言需求的全球應用程式。
您必須將 Microsoft OCR 結合使用 Azure 認知服務,特別是電腦視覺 API,才能在 C# 專案中使用它。 這是您可以開始的方法:
如果您還沒有 Azure 帳戶,您必須創建一個。 您可以建立一個免費的 Azure 帳戶,並在試用期間訪問多項服務。
在你擁有 Azure 帳戶時,必須配置 Azure 認知服務中的計算機視覺服務。
可以利用 Microsoft Azure。 在您的C#專案中,使用CognitiveServices.Vision.ComputerVision NuGet套件與電腦視覺API進行通信。
在 Visual Studio 中開啟您的 C# 專案後,導航到工具 -> NuGet 套件管理員,然後管理方案的 NuGet 套件。
通過搜尋 "Microsoft.Azure.CognitiveServices.Vision.ComputerVision" 安裝套件。
安裝 SDK 之後,您可以使用計算機視覺 API 來進行 OCR。 以下是一個使用電腦視覺 API 對圖像進行光學字元辨識 (OCR) 的介紹範例:
using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
class Program
{
static async System.Threading.Tasks.Task Main(string [] args)
{
var endpoint = "YOUR_ENDPOINT";
var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
{
Endpoint = endpoint
};
var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
foreach (var region in result.Regions)
{
foreach (var line in region.Lines)
{
foreach (var word in line.Words)
{
Console.WriteLine(word.Text);
}
}
}
}
}
using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
class Program
{
static async System.Threading.Tasks.Task Main(string [] args)
{
var endpoint = "YOUR_ENDPOINT";
var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
{
Endpoint = endpoint
};
var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
foreach (var region in result.Regions)
{
foreach (var line in region.Lines)
{
foreach (var word in line.Words)
{
Console.WriteLine(word.Text);
}
}
}
}
}
Imports System
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models
Friend Class Program
Shared Async Function Main(ByVal args() As String) As System.Threading.Tasks.Task
Dim endpoint = "YOUR_ENDPOINT"
Dim subscriptionKey = "YOUR_SUBSCRIPTION_KEY"
Dim client = New ComputerVisionClient(New ApiKeyServiceClientCredentials(subscriptionKey)) With {.Endpoint = endpoint}
Dim result = Await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed)
For Each region In result.Regions
For Each line In region.Lines
For Each word In line.Words
Console.WriteLine(word.Text)
Next word
Next line
Next region
End Function
End Class
要對影像檔執行OCR,請將上面程式碼範例中的「image.png」替換為影像檔的路徑。此程式碼將透過發送至視覺分析 API 從影像中取得識別的文字。 在 Azure 認知服務中配置計算機視覺服務後收到的端點 URL 和訂閱金鑰應替換為 "YOUR_ENDPOINT" 和 "YOUR_SUBSCRIPTION_KEY"。
開發人員可以使用IronOCR這個.NET OCR程式庫將文字識別功能整合到他們的C#或VB.NET應用程式中。 它提供了用於從 PDF、圖片和其他類型媒體中提取文字的使用者友好 API。 Iron Software是一家專注於 .NET 元件和庫的軟體開發公司,負責創建和維護IronOCR。
以下是一個基本的C#範例:
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage(@"Demo.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Console.ReadKey();
}
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage(@"Demo.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Console.ReadKey();
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
Input.AddImage("Demo.png")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
Console.ReadKey()
End Using
我們可以使用上述代碼,從圖像中提取具有最高 OCR 準確性的數據。 此外,IronOCR 有助於將從手寫文件中提取的文本轉換為可編輯的文件格式,包括 Word。 掃描文件也可以被轉換成可搜尋的 PDF。 使用 IronOCR,結果可以儲存為各種 OCR 輸出格式。 若要深入了解程式碼,請參考這裡.
來源圖片:
結果:
總之,Tesseract 和 Microsoft OCR 各自具有獨特的優勢和劣勢,為 C# 開發人員提供了強大的 OCR 功能。 由於 Tesseract 提供了自訂和彈性,它是需要大量微調應用程式的良好選擇。 然而,Microsoft OCR 是需要先進文字識別功能的 C# 應用程式的最佳選擇,因其具有高精確度、可擴展性以及與 Azure 服務的無縫連接。 對於他們的 C# 項目,開發人員在決定使用 Tesseract 還是 Microsoft OCR 之前,應考量各自的需求、修改要求及財務限制。
最後,IronOCR 是一種出色的光學字符識別解決方案,提供卓越的集成性、靈活性和準確性。 由於其無與倫比的準確性、高級算法以及識別各種文件類型(包括手寫文件)的能力,IronOCR 是目前市場上最好的 OCR 解決方案。 由於 IronOCR 能夠在多種文件和常見的計算機語言中順利整合,它在保持直觀界面的同時,確保了開發人員的可及性。
您可以免費試用經濟實惠的 IronOCR 開發版本,如果您購買 IronOCR 套件,您將獲得終身許可。 IronOCR 套裝的起始價格為 $749,由於其提供多設備單一價格,是一個非常划算的選擇。 若要了解更多成本資訊,請造訪 IronOCR。網站. 按一下此 連結了解更多關於 Iron Software 產品的資訊。