跳過到頁腳內容
與其他組件的比較
IronOcR 作為 Patagames Tesseract.NET 的替代品

IronOCR 和 Tesseract.NET 之間的比較

光學字元辨識技術可以辨識圖像中可讀的文字。 光學字元辨識技術有很多應用方式。 例如,它可以掃描和數位化舊紙本文件,並將其轉換為可搜尋的電子文件。 透過檢查照片和視頻,執法部門也能夠識別犯罪證據。 機器或電腦要能夠識別任何文件上的字符,就必須了解所使用的字體和書寫這些字符的文字系統。 這種理解通常來自稱為圖像識別演算法的人工智慧軟體,這些演算法經過大量文字圖像資料集的訓練和調整。

OCR是一項用途廣泛的重要技術。 它通常用於讀取掃描的紙本文檔,將其轉換為可透過電腦編輯和搜尋的數位檔案。 然而,OCR 也可應用於各種其他類型的信息,包括標牌或標籤上的印刷文本、支票、表格和其他商業記錄中的文本,甚至可以從錄音中轉錄醫療記錄。

本文將比較兩個 .NET OCR 函式庫。

  • IronOCR
  • Tesseract.NET SDK

IronOCR。 功能

IronOCR 是適用於 .NET C# 和 VB 的最新、最先進的 OCR(光學字元辨識)函式庫。 IronOCR 可以掃描所有影像格式的條碼和二維碼,並能讀取文字和使用最新的 Tesseract 5 引擎進行 PDF 掃描。 IronOCR 只需幾行程式碼,無需新增程式庫,即可在所有 .NET 專案範本(例如桌面應用程式、控制台應用程式和 Web 應用程式)中新增 OCR 功能。 IronOCR 是 .NET 專案中最精準的 OCR 引擎之一。

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

IronOCR 專為 .NET 應用程式而設計。 IronOCR 支援最多 125 種語言。

  • IronOCR 可以校正傾斜影像的位置,並去除影像中的噪聲,從而實現精確輸出。
  • IronOCR 在低解析度、低 DPI 的影像中表現出色。
  • IronOCR 可以讀取多種類型的二維碼和條碼。
  • 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 函式庫功能

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

Tesseract.NET SDK 支援 32 位元和 64 位元作業系統上的 .NET Framework 2.0 至 4.5。 該 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 套件管理器命令列。
  • Direct download from the NuGet website.
  • Direct download from the IronOcr website.

使用 Visual Studio NuGet 套件管理器

我們可以使用 Visual Studio 中的 NuGet 套件管理器 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 套件管理器命令列

我們可以使用 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 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功能有助於將文件儲存為可搜尋格式。

其他功能

  • 對比度:此影像濾鏡會將每個像素變為黑色或白色,沒有中間色調。
  • 深度清除背景雜訊:如果已知文件背景噪音極大,請使用此篩選器。
  • 反轉:反轉所有顏色。 例如:白色變成黑色,黑色變成白色。
  • 替換顏色:用另一種顏色取代目前顏色,以減少雜訊。
  • ToGrayScale:此影像濾鏡將每個像素轉換為灰階陰影。
  • 以及許多其他功能和特性。

IronOCR。 功能

IronOCR 支援 125 種語言。 IronOCR 還支援 20 多種類型的二維碼和條碼讀取。 IronOCR 可以將影像轉換為灰階影像,以獲得更好的效果。 IronOCR 可以手動和自動增強影像解析度。 它還支援自動對比度功能,以獲得最佳效果。 IronOCR 可以將文件匯出為多種語言和格式,例如可搜尋的 PDF、HTML 匯出以及任何頁面的圖片。 IronOCR 支援多種輸入格式,例如以下格式:

  • 圖片(JPG、PNG、GIF、Tiff、BMP)
  • 多頁 GIF 和 TIFF
  • 系統繪圖對象
  • 串流媒體
  • PDF文件

授權

IronOCR。

IronOCR 可免費用於開發。 它還提供免費試用版供開發人員使用。 IronOCR 為生產提供多種定價方案。 您可以購買最符合您需求的套餐。 我們提供個人、開發者團隊和組織層級的定價方案。 Lite 套餐的價格從$799起,適用於一名開發者和一個專案。 所有方案均為一次性付款。 用戶可享一年免費更新服務。 它還支援SaaS和OEM覆蓋範圍。 專業版套餐售價為 $999,無限版套餐售價為 $2,999。 無限套餐包含無限的開發人員、專案和地點。

Tesseract Net Core Alternatives 11 related to IronOCR。

You can learn more about the pricing plans by following this link. 此外,Iron Software 目前還有一項特別優惠活動,您可以以兩套軟體的價格購買一套包含五套軟體的套裝。 這五款軟體包都非常優秀:IronPDF、IronXL、IronOCR、IronBarcode 和 IronWebscraper。

Tesseract.NET SDK

Tesseract.NET SDK 也提供定價方案。 Tesseract.NET SDK 方案從 $220 起,適用於一名開發人員和一個專案。 需要注意的是,該定價方案包含續訂方案。 因此,您需要按年或按月付費,以確保 Tesseract.NET SDK 在您的專案中正常運作。 You can learn more about the pricing plan for the Tesseract.NET SDK at this link.

Tesseract Net Core Alternatives 12 related to 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 則按月或按年續約。 因此,從長遠來看,即使 Tesseract.NET SDK 的起價低於 IronOCR,你也必然要為它支付更多費用。

透過分析整個場景並測試兩個函式庫的功能,我們可以得出結論:對於模糊、旋轉、傾斜且略帶雜訊的文檔,IronOCR 在效能方面比 Tesseract.NET SDK 更勝一籌。 這兩個庫的 OCR 功能都不錯,但 IronOCR 是一個高級庫,具有更好的功能,例如影像預處理、降噪和將圖片旋轉到原始位置。 Tesseract.NET SDK 支援最多 60 種語言,而 IronOCR 最多支援 125 種語言。 Tesseract.NET SDK 需要為不同語言提供額外的文件,這會增加程式的體積。 此外,Tesseract.NET SDK 已經很久沒有更新了。

IronOCR offers a free trial for production tests. 目前,它還提供一項非常優惠的特別優惠,您可以以兩套 Iron Software 軟體包的價格購買全套五組 Iron Software 軟體包。 You can get more information about the offer at this link.

請注意Tesseract OCR SDK 是其各自所有者的註冊商標。 本網站與 Tesseract OCR SDK 無任何關聯,也未獲得其認可或贊助。 所有產品名稱、標誌和品牌均為其各自擁有者的財產。 比較資料僅供參考,並反映撰寫時的公開資訊。

常見問題解答

IronOCR 如何改善 Tesseract.NET SDK 的 OCR 任務?

IronOCR 因其先進的影像預處理能力和對多執行緒的支援,在處理低解析度、傾斜或有雜訊的影像時能提供更好的效能,相較於 Tesseract.NET SDK,IronOCR 是更強大的解決方案。

IronOCR 的 OCR 支援哪些語言?

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

IronOCR 可以在跨平台環境中使用嗎?

是的,IronOCR 與 Windows、Mac 和 Linux 系統相容,並可整合至 Azure 和 Docker 等雲端解決方案中,是跨平台開發的多功能工具。

IronOCR 有哪些安裝方法?

IronOCR 可透過 Visual Studio 的 NuGet Package Manager 安裝,使用 NuGet Package Manager Console,或直接從 NuGet 或 IronSoftware 網站下載。

IronOCR 如何處理影像預處理?

IronOCR 包含先進的影像預處理功能,例如抗色偏與去噪,可在文字擷取前先準備影像,以提高 OCR 的準確度。

IronOCR 有哪些授權選項?

IronOCR 提供多種授權選項,例如個人和開發人員 Team License,Lite 計劃只需一次性付款,一年內可免費更新。此外,還有 Professional 和無限制計畫可供選擇。

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》。