與其他組件比較

IronOCR 與 Tesseract.NET 的比較

發佈 2022年8月31日
分享:

光學字符識別(OCR)能識別圖像中可讀的文字。光學字符識別有很多用途。例如,它可以掃描並數位化舊的紙質文件,將其轉換為可搜尋的電子文件。這對於執法部門來說也很有用,可以通過檢查照片和視頻來識別犯罪證據。要使機器或計算機能夠識別任何文件上的字符,必須了解所使用的字體和書寫系統。通常,這種理解來自於稱為圖像識別算法的人工智慧軟件,這些算法是在大量的文字圖像數據集上訓練和調整的。

OCR 是一項重要技術,具有多種用途。它經常被用於閱讀掃描的紙質文件,將其轉換為可以通過電腦編輯和搜索的數字文件。然而,OCR 也可以應用於各種其他類型的信息,包括標誌或標籤上的印刷文字、支票、表格和其他業務記錄中的手寫或打字文字,甚至是從音頻錄音轉成的醫療記錄。

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

  • IronOCR
  • The Tesseract.NET SDK

介紹

IronOCR 功能

IronOCR 是最新且最先進的 OCR (光學字符識別) library for .NET C#和VB。IronOCR 可以從所有圖像格式中掃描條形碼和QR碼,並使用最新的Tesseract 5引擎讀取文本和執行PDF掃描。IronOCR 可以在所有 .NET 項目模板中添加OCR功能,例如桌面應用程序、控制台和Web應用程序,只需幾行代碼即可,不需要添加額外的庫。IronOCR 是.NET 項目中最準確的OCR引擎之一。

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

  • IronOCR 純粹為 .NET 應用程序而設計。
  • IronOCR 支持多達 127 種語言。
  • 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 Features

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

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 並點擊「Create New Project」(創建新專案)。之後,從範本中點擊「Console Application」(控制台應用程式),並配置您的專案。

現在輸入專案名稱。我將指定名稱為 "IronOCR vs Tesseract.NET SDK"。之後,選擇您要建立專案的路徑並按下 Enter 鍵。

之後,選擇 .NET 版本。我們使用最新版本的 .NET,也就是 .NET 6,而 IronOCR 支援這個版本。您可以根據項目的需求選擇最適合的版本。

點擊“創建”按鈕後,項目模板將創建項目,現在可以安裝庫了。讓我們直接安裝庫。

安裝 IronOCR 和 Tesseract.NET SDK

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

安裝 IronOCR

IronOCR 支援多種安裝方法。我們可以選擇任何一種方式。所有方法都是安全的。

  • 使用 Visual Studio 的 NuGet 套件管理器
  • 使用 NuGet 套件管理器的命令行。
  • 直接下載來自 NuGet網站
  • 直接下載來自 IronOcr 網站.

使用 Visual Studio NuGet 套件管理器

我們可以使用 Visual Studio 中的 NuGet 套件管理工具安裝 IronOCR 庫。我們可以通過點擊 工具 > NuGet 套件管理器 > 管理解決方案的 NuGet 套件 來訪問它。

前往瀏覽標籤並搜索IronOCR。從搜索結果中選擇IronOCR並將其安裝在我們的專案中。

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

使用 NuGet 封裝管理器指令列

我們可以使用 NuGet 封裝管理器主控台來安裝 IronOCR 庫。前往指令列(通常位於程式碼檔案下方),然後在指令列中輸入以下命令並按下 Enter 鍵。

Install-Package IronOCR

它將開始安裝IronOCR庫。安裝後,它將可在我們的專案中使用。

安裝 Tesseract.NET SDK

我們可以使用 NuGet 套件管理器來安裝 Tesseract.NET SDK。要安裝 Tesseract.NET SDK,請前往 工具 > NuGet 套件管理器 > 管理解決方案的 NuGet 套件。轉到「瀏覽」標籤並搜索 Tesseract.NET SDK。從搜索結果中選擇 Tesseract.NET SDK 並安裝它。安裝後,我們可以在程式中使用 Tesseract.NET SDK。

安裝後,您可以在解決方案資源管理器中看到這三個文件夾。

這些文件夾包含 Tesseract 執行 OCR 所需的基本資料。現在我們已準備好在我們的項目中嵌入 OCR 功能。

OCR 圖像

現在是測試 IronOCR 和 Tesseract.NET SDK 功能的時候了。這兩個庫都能夠對圖像進行 OCR。我們將使用帶有文字的傾斜和噪聲圖像來測試它們。

測試圖片

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

使用 Tesseract.NET SDK

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

using Patagames. Ocr;

using (var api = OcrApi.Create())
{
    api.Init(Patagames.Ocr.Enums.Languages.English);
    string plainText = api.GetTextFromImage(@"C:\Users\Administrator\Desktop\Input.jpg");
    Console.WriteLine(plainText);
}
using Patagames. Ocr;

using (var api = OcrApi.Create())
{
    api.Init(Patagames.Ocr.Enums.Languages.English);
    string plainText = api.GetTextFromImage(@"C:\Users\Administrator\Desktop\Input.jpg");
    Console.WriteLine(plainText);
}
Imports Patagames.Ocr

Using api = OcrApi.Create()
	api.Init(Patagames.Ocr.Enums.Languages.English)
	Dim plainText As String = api.GetTextFromImage("C:\Users\Administrator\Desktop\Input.jpg")
	Console.WriteLine(plainText)
End Using
VB   C#

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

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

這就是我們從 Tesseract.NET SDK 獲得的輸出結果。起初,它會根據解析度給出錯誤,顯示它僅適用於高解析度圖片。在錯誤之後,我們可以看到從圖片中提取的文字。如果我們將這些文字與圖片進行比較,會發現它完全不同。提取的文字中有很多不相關的文字,沒有任何意義。總體來說,Tesseract.NET SDK 未能通過這個測試。

使用IronOCR

接下來,我們將看到IronOCR的結果。在查看結果之前,我們將先看一下IronOCR的代碼:

using IronOcr;
var Ocr = new IronTesseract(); // nothing to configure            
Ocr.Language = OcrLanguage.EnglishBest;
using (var Input = new OcrInput())
{
    Input.AddImage(@"C:\Users\Administrator\Desktop\Input.jpg");
    Input.Deskew();
    Input.DeNoise();
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract(); // nothing to configure            
Ocr.Language = OcrLanguage.EnglishBest;
using (var Input = new OcrInput())
{
    Input.AddImage(@"C:\Users\Administrator\Desktop\Input.jpg");
    Input.Deskew();
    Input.DeNoise();
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Using Input = New OcrInput()
	Input.AddImage("C:\Users\Administrator\Desktop\Input.jpg")
	Input.Deskew()
	Input.DeNoise()
	Dim Result = Ocr.Read(Input)
	Console.WriteLine(Result.Text)
End Using
VB   C#

在上述程式碼中,我們將 IronOCR 函式庫導入程式,然後創建 IronTesseract 對象,這有助於啟動過程。之後,我們設定過程語言為英文。現在可以開始實際工作了。我們創建 OcrInput 對象。使用 AddImage 函數將圖像路徑賦值給 Input 變量。我們使用 Deskew 函數將圖像旋轉到其實際位置,然後使用 Denoise 函數從圖像中消除噪聲。這將提供更好的結果。之後,我們使用 Read 函數來識別文本並從測試圖像中提取文本。接下來,我們在控制台中顯示結果。您還可以將輸出保存為專案文件中的 PDF 文件。

以下是 IronOCR 生成的輸出:

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

IronOCR 還支持添加多幀圖像。我們可以使用 "AddMultiFrameTiff" 方法來執行此操作。IronOCR 會讀取圖片中的每一幀,每一幀都被視為單獨的頁面。此方法只支持 Tiff 圖像。

using IronOcr;

var Ocr = new IronTesseract();

using (var Input = new OcrInput())
{
    Input.AddMultiFrameTiff("images/multiframe.tiff");

    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}
using IronOcr;

var Ocr = new IronTesseract();

using (var Input = new OcrInput())
{
    Input.AddMultiFrameTiff("images/multiframe.tiff");

    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}
Imports IronOcr

Private Ocr = New IronTesseract()

Using Input = New OcrInput()
	Input.AddMultiFrameTiff("images/multiframe.tiff")

	Dim Result = Ocr.Read(Input)
	Console.WriteLine(Result.Text)
End Using
VB   C#

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

using IronOcr;

var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    Input.AddImage(@"images\page1.png")
    Input.AddImage(@"images\page2.bmp")
    Input.AddMultiFrameTiff(@"images\page3.tiff")

    Input.Deskew();

    var Result = Ocr.Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;

var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    Input.AddImage(@"images\page1.png")
    Input.AddImage(@"images\page2.bmp")
    Input.AddMultiFrameTiff(@"images\page3.tiff")

    Input.Deskew();

    var Result = Ocr.Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr

Private Ocr = New IronTesseract()
Using Input = New OcrInput()
	Input.AddImage("images\page1.png") Input.AddImage("images\page2.bmp") Input.AddMultiFrameTiff("images\page3.tiff") Input.Deskew()

	Dim Result = Ocr.Read(Input)
	Result.SaveAsSearchablePdf("searchable.pdf")
End Using
VB   C#

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

其他功能

  • 對比度:這個影像濾鏡將每個像素轉變為黑色或白色,沒有中間色。
  • 深層清理背景雜訊:當文件背景噪音極端強烈時,可以使用這個濾鏡。
  • 反轉:反轉每個顏色。例如白色變成黑色,黑色變成白色。
  • 替換顏色:用另一個顏色替換顏色以減少噪音。
  • 灰階:這個影像濾鏡將每個像素轉變為灰階的陰影。
  • 其他許多功能和特點。

IronOCR 功能特色

IronOCR 支援 127 種語言。IronOCR 也支援超過 20 種類型的 QR 碼和條碼讀取。IronOCR 可以將圖像轉換為灰階,以獲得更好的效果。IronOCR 可以手動和自動提升圖像解析度。它還支援自動對比度功能,提供最佳效果。IronOCR 可以將文件導出為多種語言和格式,如可搜尋的 PDF、HTML 導出和任何頁面圖像。IronOCR 支援多種輸入格式,包括以下:

  • 圖像 (JPG、PNG、GIF、Tiff、BMP)
  • 多頁GIF和TIFF
  • System.Drawing物件
  • PDFs

授權

IronOCR

IronOCR是開發用免費的。此外,還提供開發用的免費試用版。IronOCR針對生產有多種定價方案。您可以購買最符合您需求的方案。有個人、開發者團隊和組織級別的定價方案。價格從一個開發者和一個項目的Lite方案起價$749起。所有方案均為一次性付款。用戶可免費獲取一年的更新。也支持SaaS和OEM覆蓋。專業方案價位為$999,而無限方案價格為$2999。無限方案包含無限開發者、項目和地點。

您可以點擊此連結了解更多關於價格方案的資訊。 連結此外,Iron Software 目前有一個特別優惠,您可以用兩個軟體套件的價格購買五個軟體套件。這五個軟體套件都很出色:IronPDF、IronXL、IronOCR、IronBarcode 和 IronWebscraper。

Tesseract.NET SDK

Tesseract.NET SDK 也有定價計劃。Tesseract.NET SDK 的計劃起價為 $220,適用於一位開發者和一個項目。這裡需要注意的一個重要事項是,定價計劃包括續訂計劃。因此,您需要每年或每月支付費用,以確保 Tesseract.NET SDK 在您的項目中運行。您可以在此了解更多有關 Tesseract.NET SDK 的定價計劃。 連結.

結論

IronOCR 是執行任務的完美庫。IronOCR 還支持127種語言,這意味著它在全球範圍內被接受。它支持多種圖像格式和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 有月度或年度續約。所以從長遠來看,即使 Tesseract.NET SDK 的起始價格低於 IronOCR,你最終必須支付更多。另外,通過分析整個情況並測試兩個庫的性能,我們可以得出結論,IronOCR 在處理模糊和旋轉的傾斜且有些噪聲的文件方面比 Tesseract.NET SDK 更優。兩個庫的 OCR 能力都很好,但 IronOCR 是一個功能更強大的庫,具有更好的功能,如圖像預處理、去噪和將圖片旋轉到原始位置。Tesseract.NET SDK 支持多達60種語言,而 IronOCR 支持多達127種語言。Tesseract.NET SDK 需要額外的文件來支持不同的語言,這為程式增加了額外的負擔。此外,Tesseract.NET SDK 已經很久沒有更新了。

IronOCR 提供生產測試的免費試用。目前還提供了優惠活動,您可以只需支付兩個軟體的價格即可購買五個 Iron Software 軟體套餐的全部。您可以在這裡獲取更多有關該優惠的信息。 連結.

< 上一頁
IronOCR與PDFTRON OCR的比較
下一個 >
IronOCR 與 Dynamsoft OCR 的比較

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

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