跳至頁尾內容
與其他組件的比較
IronOCR 作為 Patagames Tesseract.NET 的替代方案

IronOCR與Tesseract.NET的比較

光學字元識別識別圖像中可以讀取的文字。 光學字元識別的應用方式有很多。 例如,它可以掃描和數位化舊的紙本文件,將其轉換為可搜尋的電子文件。 它對於執法機構在檢查照片和影片以識別犯罪證據方面也很有用。 為了使機器或電腦能夠識別任何文件上的字元,它必須了解所使用的字體和書寫系統。 通常,這種理解來自人工智慧軟體,稱為圖像識別算法,這些算法基於大型文字圖像資料集進行訓練和調整。

OCR是一項具有多種用途的重要技術。 它通常用於讀取掃描的紙本文件,將其轉換為可編輯和檢索的數位文件。 然而,OCR也可以應用於各種型別的資訊,包括標誌或標籤上的印刷文字、支票、表單和其他商業紀錄的文字,甚至是音訊錄音的醫學紀錄的抄寫本。

在本文中,我們將比較兩個.NET OCR程式庫。

*IronOCR *The Tesseract.NET SDK

IronOCR 特徵

IronOCR 是最新且最先進的 .NET C# 和 VB 的 OCR(光學字元識別)程式庫。 IronOCR 可以從所有圖像格式掃描條碼和QR碼,並使用最新的 Tesseract 5 引擎讀取文字和執行PDF掃描。IronOCR 可以在所有.NETproject模板(如桌面應用程式、控制台和Web應用程式)中新增OCR功能,只需幾行程式碼且不需要新增程式庫。 IronOCR 是 .NET 專案中最準確的 OCR 引擎之一。

讓我們討論一些 IronOCR 的獨特功能:

*IronOCR 純粹為 .NET 應用程式製作。 *IronOCR 支援多達 125 種語言。 *IronOCR 可以校正傾斜圖像的位置,並去除圖像中的噪點,以獲得精確的輸出。 *IronOCR 在低解析度的低 DPI 圖像上性能表現得尤其出色。 *IronOCR 能夠讀取多種型別的 QR 碼和條形碼。 *IronOCR 也支援 Gif 和 Tiff 格式。 *IronOCR 支援多執行緒。 這是一個其他 OCR 程式庫中不存在的絕妙功能。 使過程更加流暢。 *IronOCR 可以輕鬆地對 PDF 檔案執行 OCR,並使用 OCR 導出可搜尋的 PDF 文件。

IronOCR 支援所有主要語言,包括阿拉伯語、中文、英語、芬蘭語、法語、德語、日語及更多。 IronOCR 提供功能以顯示不同格式的輸出,如條形碼資料、純文字或包含行、單詞、段落和字元的 OCR 結果類。 IronOCR 使用 Tesseract 程式庫技術。

IronOCR 與 Mac、Windows 和 Linux 的機器相容。 它還支援 Azure 和 Docker 作為雲端解決方案。 IronOCR 的最新更新包括 .NET core 3.1 和 .NET 6 在支援列表中,亦提供了 MacOS 的 Xamarin 支援。

Tesseract OCR Library 特徵

Tesseract.net SDK 是 Patagames 的產品,一個用於 .NET 項目的光學字元識別(OCR)程式庫,並提供在 .NET 應用程式中新增類似文字識別的 OCR 功能的方法。 Tesseract.NET SDK 是一個可以讀取多種圖像格式並將其轉換為文字的 OCR 引擎。 它支援多達 60 種語言。 它還支援讀取和掃描 PDF 文件並將其轉換為可搜尋的 PDF 文件。 基本上,Tesseract.NET SDK 是基於Tesseract OCR專案的類程式庫。 它有一個Tesseract引擎來執行OCR。 Patagames.Ocr.xml 包含了 API 的 XML 文件

Tesseract.NET SDK 支援 .NET Framework 2.0 至 4.5 的32位和64位作業系統。 此SDK可以與Windows XP和其他Windows版本如Windows 7、Vista、8、10和11一起使用。它與32位和64位的作業系統相容,使其在任何CPU上都可以容易使用。

不幸的是,.NET SDK 不適用於 macOS 或 Linux。

使用IronOCR和Tesseract.NET SDK

讓我們來看看如何在我們的專案中使用IronOCR和Tesseract.NET SDK。

在Visual Studio中建立C#項目

我們使用Visual Studio 2022版本來建立此專案。 建議使用最新版本的Visual Studio以確保順利進展。 接下來,開啟 Visual Studio 並點擊"建立新專案"。 之後,從模板中選擇"控制台應用程式",並配置您的專案。

Tesseract Net Core Alternatives 1 related to 在Visual Studio中建立C#項目

現在輸入項目名稱。 我將分配名稱"IronOCR vs Tesseract.NET SDK"。 之後,選擇您想要建立專案的路徑,然後按下 Enter 鍵。

Tesseract Net Core Alternatives 2 related to 在Visual Studio中建立C#項目

之後,選擇.NET版本。 我們使用最新版本的.NET,即.NET 6,IronOCR支持它。 您可以使用最適合您要求的版本。

Tesseract Net Core Alternatives 3 related to 在Visual Studio中建立C#項目

點擊"建立"按鈕後,專案模板將建立專案,現在可以安裝程式庫了。 讓我們直接安裝這些程式庫。

安裝IronOCR和Tesseract.NET SDK

現在是安裝程式庫並檢查功能的時候了。 首先,我們將安裝 IronOCR 程式庫。

安裝IronOCR

IronOCR 支持使用多種方法安裝。 我們可以選擇任何方法。 所有方法都是安全的。

*使用 Visual Studio NuGet 包管理器 *使用 NuGet Package Manager 命令行。 *從 NuGet網站直接下載。 *從 IronOCR網站直接下載。

使用 Visual Studio NuGet 包管理器

我們可以通過 Visual Studio 中的 NuGet Package Manager GUI 安裝 IronOCR 程式庫。 我們可以通過點擊 工具 > NuGet 包管理器 > 管理解決方案的 NuGet 包來存取它。

Tesseract Net Core Alternatives 4 related to 使用 Visual Studio NuGet 包管理器

轉到瀏覽選項卡並搜索 IronOCR。 從搜索結果中選擇 IronOCR,並在我們的專案中安裝它。

Tesseract Net Core Alternatives 5 related to 使用 Visual Studio NuGet 包管理器

現在,我們已經在專案中安裝了 IronOCR 程式庫。 幸好它現在已經可以在我們的 .NET 專案中使用了。

使用 NuGet Package Manager 命令行

我們可以使用 NuGet Package Manager 控制台安裝 IronOCR 程式庫。 轉到命令行(通常位於程式碼文件以下),然後在命令行中寫入以下行並按 Enter 鍵。

Install-Package IronOcr

這將開始安裝 IronOCR 程式庫。 安裝完成後,它就可以在我們的專案中使用了。

安裝 Tesseract.NET SDK

我們可以使用 NuGet Package Manager 安裝 Tesseract.NET SDK。 要安裝 Tesseract.NET SDK,轉到 工具 > NuGet 包管理器 > 管理解決方案的 NuGet 包。 轉到瀏覽選項卡並搜索 Tesseract.NET SDK。 從搜索結果中選擇 Tesseract.NET SDK 並安裝它。 安裝完成後,我們可以在程式中使用 Tesseract.NET SDK。

Tesseract Net Core Alternatives 6 related to 安裝 Tesseract.NET SDK

安裝完成後,您可以在資料夾中看到這三個資料夾。

Tesseract Net Core Alternatives 7 related to 安裝 Tesseract.NET SDK

這些資料夾包含 Tesseract 執行 OCR 所需的基本資料。 現在我們準備在專案中嵌入 OCR 功能了。

OCR 圖像

現在是時候測試 IronOCR 和 Tesseract.NET SDK 的功能了。 這兩個程式庫都可以在圖像上執行 OCR。 我們將使用帶有文字的傾斜且有噪點的圖像來測試它們。

測試圖像

這是我們將用於測試的圖像。

Tesseract Net Core Alternatives 8 related to 測試圖像

使用 Tesseract.NET SDK

首先,我們將查看 Tesseract.NET SDK 為測試圖像生成的輸出。 讓我們來看看程式碼:

using Patagames.Ocr;

// Use the OcrApi class to create an API instance for OCR
using (var api = OcrApi.Create())
{
    // Initialize the OCR API with the English language
    api.Init(Patagames.Ocr.Enums.Languages.English);
    // Extract text from the image at the specified path
    string plainText = api.GetTextFromImage(@"C:\Users\Administrator\Desktop\Input.jpg");
    // Print the extracted text to the console
    Console.WriteLine(plainText);
}
using Patagames.Ocr;

// Use the OcrApi class to create an API instance for OCR
using (var api = OcrApi.Create())
{
    // Initialize the OCR API with the English language
    api.Init(Patagames.Ocr.Enums.Languages.English);
    // Extract text from the image at the specified path
    string plainText = api.GetTextFromImage(@"C:\Users\Administrator\Desktop\Input.jpg");
    // Print the extracted text to the console
    Console.WriteLine(plainText);
}
Imports Patagames.Ocr

' Use the OcrApi class to create an API instance for OCR
Using api = OcrApi.Create()
	' Initialize the OCR API with the English language
	api.Init(Patagames.Ocr.Enums.Languages.English)
	' Extract text from the image at the specified path
	Dim plainText As String = api.GetTextFromImage("C:\Users\Administrator\Desktop\Input.jpg")
	' Print the extracted text to the console
	Console.WriteLine(plainText)
End Using
$vbLabelText   $csharpLabel

首先,我們將導入 Patagames.OCR 程式庫以使用 Tesseract.NET SDK。 之後,我們將使用 Create 函式建立一個 OcrApi。 然後,我們將使用 Init 函式將預設語言設置為英語。 接下來,我們使用 GetTextFromImage 方法從圖像中提取純文字,在參數中提供圖像文件的路徑。 然後,我們將提取的文字寫入控制台。

接下來,查看 Tesseract.NET SDK 生成的輸出:

Tesseract Net Core Alternatives 9 related to 使用 Tesseract.NET SDK

這就是我們從 Tesseract.NET SDK 獲得的輸出。 起初,它根據解析度給出錯誤,顯示它只能很好地處理高解析度的圖像。 在錯誤之後,我們可以看到從圖像中提取的文字。 如果我們將這些文字與圖像進行比較,我們會發現它完全不同。 提取的文字中有大量無關的文字,沒有意義。 總體而言,Tesseract.NET SDK 未通過此測試。

使用IronOCR

接下來,我們將看到 IronOCR 的結果。 在進入結果之前,我們將首先查看 IronOCR 的程式碼:

using IronOcr;

// Initialize the IronTesseract class for performing OCR
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.EnglishBest;

// Use OcrInput to prepare the image for processing
using (var Input = new OcrInput())
{
    Input.AddImage(@"C:\Users\Administrator\Desktop\Input.jpg");
    // Correct the skew and noise in the image
    Input.Deskew();
    Input.DeNoise();
    // Perform OCR and get the result
    var Result = Ocr.Read(Input);
    // Print the recognized text to the console
    Console.WriteLine(Result.Text);
}
using IronOcr;

// Initialize the IronTesseract class for performing OCR
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.EnglishBest;

// Use OcrInput to prepare the image for processing
using (var Input = new OcrInput())
{
    Input.AddImage(@"C:\Users\Administrator\Desktop\Input.jpg");
    // Correct the skew and noise in the image
    Input.Deskew();
    Input.DeNoise();
    // Perform OCR and get the result
    var Result = Ocr.Read(Input);
    // Print the recognized text to the console
    Console.WriteLine(Result.Text);
}
Imports IronOcr

' Initialize the IronTesseract class for performing OCR
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.EnglishBest

' Use OcrInput to prepare the image for processing
Using Input = New OcrInput()
	Input.AddImage("C:\Users\Administrator\Desktop\Input.jpg")
	' Correct the skew and noise in the image
	Input.Deskew()
	Input.DeNoise()
	' Perform OCR and get the result
	Dim Result = Ocr.Read(Input)
	' Print the recognized text to the console
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

在上面的程式碼中,我們將 IronOCR 程式庫導入程式中,然後建立一個 IronTesseract 物件,這有助於啟動流程。 之後,我們將過程語言設置為英語。 現在實際工作可以開始了。 我們建立 OcrInput 物件。 使用 AddImage 函式,將圖像路徑分配給 Input 變數。 我們使用 Deskew 函式將圖像旋轉到其實際位置,然後使用 DeNoise 函式去除圖像中的雜訊。 這將提供更好的結果。 之後,我們使用 Read 函式識別文字並從測試圖像中提取它。 接著,我們在控制台中顯示結果。 您還可以將輸出保存為專案文件中的 PDF 文件。

這是 IronOCR 生成的輸出:

Tesseract Net Core Alternatives 10 related to 使用IronOCR

如果我們比較輸出,這是圖像上存在的相同文字。 IronOCR 完美提取文字,沒有任何錯誤。 IronOCR 可以從失真和旋轉的圖像中提取文字。 它甚至可以處理低解析度的圖像。

IronOCR 還支持新增多幀圖像。 我們可以使用"AddMultiFrameTiff"方法來執行此操作。 IronOCR 讀取圖像中的每一幀,並將每一幀視作單獨的一頁。 只有 Tiff 圖像使用此方法受到支持。

using IronOcr;

// Initialize the IronTesseract class for performing OCR
var Ocr = new IronTesseract();

using (var Input = new OcrInput())
{
    // Add a multi-frame TIFF image for OCR processing
    Input.AddMultiFrameTiff("images/multiframe.tiff");

    // Perform OCR and get the result
    var Result = Ocr.Read(Input);
    // Print the recognized text to the console
    Console.WriteLine(Result.Text);
}
using IronOcr;

// Initialize the IronTesseract class for performing OCR
var Ocr = new IronTesseract();

using (var Input = new OcrInput())
{
    // Add a multi-frame TIFF image for OCR processing
    Input.AddMultiFrameTiff("images/multiframe.tiff");

    // Perform OCR and get the result
    var Result = Ocr.Read(Input);
    // Print the recognized text to the console
    Console.WriteLine(Result.Text);
}
Imports IronOcr

' Initialize the IronTesseract class for performing OCR
Private Ocr = New IronTesseract()

Using Input = New OcrInput()
	' Add a multi-frame TIFF image for OCR processing
	Input.AddMultiFrameTiff("images/multiframe.tiff")

	' Perform OCR and get the result
	Dim Result = Ocr.Read(Input)
	' Print the recognized text to the console
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

讓我們看看如何製作可搜尋的 PDF 的程式碼:

using IronOcr;

// Initialize the IronTesseract class for performing OCR
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    // Add multiple images for processing
    Input.AddImage(@"images\page1.png");
    Input.AddImage(@"images\page2.bmp");
    Input.AddMultiFrameTiff(@"images\page3.tiff");

    // Deskew the images to correct orientation
    Input.Deskew();

    // Perform OCR and save the result as a searchable PDF
    var Result = Ocr.Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;

// Initialize the IronTesseract class for performing OCR
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    // Add multiple images for processing
    Input.AddImage(@"images\page1.png");
    Input.AddImage(@"images\page2.bmp");
    Input.AddMultiFrameTiff(@"images\page3.tiff");

    // Deskew the images to correct orientation
    Input.Deskew();

    // Perform OCR and save the result as a searchable PDF
    var Result = Ocr.Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr

' Initialize the IronTesseract class for performing OCR
Private Ocr = New IronTesseract()
Using Input = New OcrInput()
	' Add multiple images for processing
	Input.AddImage("images\page1.png")
	Input.AddImage("images\page2.bmp")
	Input.AddMultiFrameTiff("images\page3.tiff")

	' Deskew the images to correct orientation
	Input.Deskew()

	' Perform OCR and save the result as a searchable PDF
	Dim Result = Ocr.Read(Input)
	Result.SaveAsSearchablePdf("searchable.pdf")
End Using
$vbLabelText   $csharpLabel

SaveAsSearchablePdf 函式有助於將文件保存為可搜尋的。

其他功能

* 對比:此圖像濾鏡將每個像素變為黑色或白色,沒有中間值。 * 深度清除背景雜訊:如果已知極端文件背景噪服務,請使用此過濾器。 * 反轉:顛倒每種顏色。 例如,白色變黑色:黑色變白色。 * 替換顏色:用其他顏色替換顏色以減少噪音。 * 轉為灰階:此圖像濾鏡將每個像素變為灰色。 * 還有許多其他功能和特徵。

IronOCR 特徵

IronOCR 支持 125 種語言。 IronOCR 還支持閱讀多達 20 種條形碼和 QR 碼。 IronOCR 可以將圖像轉換為灰度,以獲得更好的結果。 IronOCR 可以手動和自動增強圖像解析度。 它還支持自動對比度功能以獲得最佳結果。 IronOCR 可以將文件導出為多種語言和格式,例如可搜尋的 PDF、HTML 輸出以及任一頁面的圖像。 IronOCR 支持多種輸入格式,如下:

* 圖片(JPG,PNG,GIF,Tiff,BMP) * 多頁 Gif 和 Tiff * System.Drawing 物件 * 資料流 * PDF

授權

IronOCR

IronOCR 是開發免費的。 它還提供免費的試用版以供開發。 IronOCR 擁有多種生產定價計畫。 您可以購買最符合您需求的計畫。 有個人、開發團隊和組織級別的定價計畫。 價格從 $999 一個開發者和一個專案的 Lite 計畫起。 所有方案是一次性付款。 使用者可以獲得一年的免費更新。 它還支持 SaaS 和 OEM 覆蓋。 專業繆畫定價在 $999,而無限方案定價為 $2,999。 無限計畫包括無限的開發者、專案和地點。

Tesseract Net Core Alternatives 11 related to IronOCR

您可通過存取 連結進一步瞭解定價計畫。 而且,Iron Software 目前有一個特別優惠,您可以用兩個價格購買五個套件。 這五個軟體包都很優秀:IronPDF,IronXL,IronOCR,IronBarcode,IronWebScraper。

The Tesseract.NET SDK

The Tesseract.NET SDK 也有定價計畫。 The Tesseract.NET SDK 計畫價格從 $220 起步,針對一個開發者和一個專案。 這裡有一個重要的事情需要知道,即定價計畫包含續約計畫。 所以,您需要每年或每月支付費用以確保您的專案中 Tesseract.NET SDK 正常運作。 您可以在連結獲取有關 Tesseract.NET SDK 定價計畫的更多資訊。

Tesseract Net Core Alternatives 12 related to The Tesseract.NET SDK

結論

IronOCR 是完成手頭任務的最佳程式庫。 IronOCR 還支持 125 種語言,這意味著它在全球範圍內被接受。 它支持多種圖像格式和 PDF 作為輸入處理。 它還進行圖像預處理以確保最佳結果。 IronOCR 是強大的 .NET 程式庫。 它可以識別圖像中特定區域的文字。 IronOCR 專注於準確性,輸出結果在這方面確實令人驚艷。 開發者不需要任何附加文件和程式庫來執行OCR。 總體而言,它是完美的程式庫。

Tesseract.NET SDK也是.NET專案的良好程式庫。 它提供 60 種語言的 OCR 服務。 它基於Tesseract OCR專案。 它可以使用其函式集將掃描圖像轉換為可搜索的 PDF。 Tesseract.NET SDK 接受廣泛範圍的圖像格式用於輸入處理。 它提供高級別的服務以支持其在 .NET 項目中的 OCR 功能。

IronOCR 和 Tesseract.NET SDK 都有定價計畫。 但是,IronOCR 的定價計畫略有更多選擇,且價格也比 Tesseract.NET SDK 更便宜。 這是因為 IronOCR 只接受一次性付款,而 Tesseract.NET SDK 則有月度或年度續約。 因此,從長遠來看,即便其起始價格低於 IronOCR,您最終還是會為 Tesseract.NET SDK 支付更多。

通過分析整個場景並測試兩個程式庫的功能,我們可以得出結論,IronOCR 在處理模糊和旋轉、傾斜且有些噪聲的文件方面表現更優。 兩個程式庫的 OCR 功能都不錯,但 IronOCR 是進階的程式庫,具有更好的功能,如圖像預處理、去噪和將圖片旋轉至原始位置。 Tesseract.NET SDK 支援最多 60 種語言,IronOCR 支援最多 125 種語言。 Tesseract.NET SDK 需要額外的語言文件,這會增加程式的負擔。 此外,Tesseract.NET SDK 的最後一次更新是很久以前。

IronOCR 提供生產測試的免費試用。 它還目前提供一個絕佳的特別優惠,您可以用兩個的價格購買全部五個 Iron Software 套件。 您可以在 連結 獲得有關此優惠的更多資訊。

請注意Tesseract OCR SDK 是其各自所有者的註冊商標。 本站與 Tesseract OCR SDK 無關、由其推薦亦非其贊助。 所有產品名稱、標誌和品牌均為其各自所有者的財產。 比較僅供資訊用途,並反映撰寫時獲得的公開資訊。

常見問題

IronOCR 如何在 OCR 任務中改進 Tesseract.NET SDK?

IronOCR 提供更好的效能,能處理低解析度、傾斜或有噪點的圖像,這要歸功於其先進的圖像前處理能力和多執行緒支援,使其比 Tesseract.NET SDK 更加穩健。

IronOCR 支援哪些語言的 OCR?

IronOCR 支援 125 種語言,為多樣的 OCR 專案提供全面的語言支援,而 Tesseract.NET SDK 支援 60 種語言。

IronOCR 能否在跨平台環境中使用?

是的,IronOCR 可以與 Windows、Mac 和 Linux 系統相容,並能整合到雲端解決方案如 Azure 和 Docker 中,適用於跨平台開發。

IronOCR 有哪些安裝方法可用?

IronOCR 可以通過 Visual Studio 的 NuGet 套件管理器安裝,使用 NuGet 套件管理器主控台,或直接從 NuGet 或 Iron Software 網站下載。

IronOCR 如何處理圖像前處理?

IronOCR 包含先進的圖像前處理功能如去傾斜和去噪音,這些功能通過在文字提取之前對圖像進行準備來提高 OCR 準確性。

IronOCR 有哪些授權選擇?

IronOCR 提供多種授權選擇,如個人和開發者團隊授權,Lite 計畫一次性付款,一年免費更新。還有專業和無限計畫可用。

IronOCR 能處理哪些格式?

IronOCR 可以處理多種輸入格式,包括圖像和 PDF,這些格式可以轉換為文字或可搜尋的 PDF 文件。

IronOCR 如何支持多執行緒?

IronOCR 支持多執行緒,允許同時處理多個 OCR 任務,提高大型專案的效率和性能。

哪些功能讓 IronOCR 成為複雜圖像場景的首選?

IronOCR在處理複雜圖像場景方面表現出色,例如先進的圖像前處理、多執行緒支持和廣泛的語言相容性,這使得它比簡單的 OCR 程式庫更受歡迎。

Kannaopat Udonpant
軟體工程師
在成為軟體工程師之前,Kannapat在日本北海道大學完成了環境資源博士學位。在攻讀學位期間,Kannapat還成為車輛機器人實驗室的一員,該實驗室隸屬於生產工程系。在2022年,他憑藉C#技能加入了Iron Software的工程團隊,專注於IronPDF。Kannapat珍視他的工作,因為他能直接向撰寫大部分IronPDF程式碼的開發者學習。除了同儕學習,Kannapat還喜歡在Iron Software工作的社交方面。不寫程式碼或文件時,Kannapat通常在他的PS5上玩遊戲或重看The Last of Us。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話