在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
開發人員在進行光學字符識別時,經常需要在 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#專案中。
打開您的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
為了完成此操作,請提供 Tesseract 安裝目錄的位置,並在 TesseractEngine 構造函數選項中指定您希望使用的語言或語言。將 "eng" 替換為您希望使用的語言代碼。 (例如,「eng」 表示英文) 並將 "path_to_tesseract_folder" 替換為 Tesseract 安裝目錄的實際路徑。
在您的 C# 專案中設定 Tesseract 後,現在可以使用其 OCR 功能從圖片中提取文字。一旦使用 Pix 類別加載圖片後,可以使用 TesseractEngine 實例來處理圖片,提取文字或對圖像文件進行 OCR,將 "image.png" 替換為圖像文件的路徑。
Microsoft 的認知服務套件包括 Microsoft OCR,有時被稱為 Microsoft 光學字符識別。Microsoft Azure 提供基於雲的光學字符識別 (光學字符識別) 可以從文件和照片中提取文本並具有增強的文本識別能力的解決方案。Microsoft OCR 使用深度神經網絡和機器學習技術,能夠從各種來源精確識別文本。
您必須將 Microsoft OCR 與 Azure 認知服務——更具體地說,是與 Computer Vision API 結合使用,以便在 C# 專案中使用它。以下是您可以開始的方法:
如果您還沒有Azure帳戶,您必須先建立一個Azure帳戶。您可以建立一個免費的Azure帳戶,並在試用期間使用多種服務。
當您擁有 Azure 帳戶時,必須配置 Azure 語言認知服務中的計算機視覺服務。
可以使用 Microsoft Azure。在您的 C# 項目中,使用 CognitiveServices.Vision.ComputerVision NuGet 包來與 Computer Vision API 進行通訊。
在 Visual Studio 中打開您的 C# 項目後,導航到 工具 -> NuGet 套件管理器,然後選擇為解決方案管理 NuGet 套件。
通過搜索 "Microsoft.Azure.CognitiveServices.Vision.ComputerVision" 安裝該包。
安裝 SDK 後,您可以使用 Computer Vision API 進行 OCR。使用 Computer Vision 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
要對圖片檔案進行光學字符識別,請將上面範例代碼中的「image.png」替換為圖片檔案的路徑。這段代碼會將圖片發送到計算機視覺 API 來獲取識別出的文本。您在 Azure 認知服務中配置計算機視覺服務後獲得的端點 URL 和訂閱金鑰應該替換為「YOUR_ENDPOINT」和「YOUR_SUBSCRIPTION_KEY」。
開發人員可以使用 IronOCR(一個 .NET OCR 庫)將文字識別功能整合到他們的 C# 或 VB.NET 應用程式中。它提供了一個用戶友好的 API,用於從 PDF、圖片和其他媒體中提取文字。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 擁有高精度、可擴展性以及與 Azure 服務的無縫連接,對於需要高端文字識別能力的 C# 應用程式來說,它是最好的選擇。開發者在為其 C# 專案選擇 Tesseract 或 Microsoft OCR 前,應考量其個別需求、修改要求和財務限制。
最後,IronOCR 是一個出色的 OCR 解決方案,提供卓越的整合性、靈活性和準確性。由於其無與倫比的準確度、先進的算法以及識別各類文件(包括手寫文件)的能力,IronOCR 是目前市場上最好的 OCR 解決方案。IronOCR 可以在多種文件和常見計算機語言中提供無縫整合,確保開發者的易用性,同時保持直觀的界面。
您可以免費試用價格實惠的 IronOCR 開發版,如果您購買 IronOCR 套裝,將獲得終身許可證。IronOCR 套裝的起價為 $749,它為多台設備提供單一價格的極佳價值。要了解更多關於費用的資訊,請訪問 IronOCR。 網站. 點擊這個 連結 了解更多關於 Iron Software 產品的資訊。