跳至頁尾內容
USING IRONOCR

OCR 在 SaaS 應用中的好處包括提高效率和準確性,通過自動化文字識別任務,企業可以省時省錢並降低手動輸入錯誤。

OCR是用來將不同性質的文件轉換為可編輯和檢索資料的技術。 它將掃描的圖像、PDF文件和數位相機照片轉換為可編輯和檢索的資料。 這項技術廣泛應用於將印刷文件轉換為數位格式,用於編輯、搜尋和儲存,從而減少文件佔用的實體空間。 OCR在資料輸入自動化中發揮了巨大作用,因此通過減少人力資源使用的勞動節省了公司和組織大量時間。

這是一個利用先進的機器學習技術和模式識別從圖像中準確提取文字的過程。 與OCR相關的最新發展提高了其準確性,從而支持更多的語言和複雜的腳本,如阿拉伯語腳本。 在金融、健康、立法和教育等領域,OCR成為一個不可或缺的工具,因為快速處理大量印刷文件是先決條件。本文將使用Tesseract來OCR多語言資料的圖像。

如何使用Tesseract OCR來處理多語言

  1. 首先,在您的.NET專案中安裝IronOCR/Tesseract NuGet包。
  2. 建立一個IronTesseract類的實例,它將初始化OCR引擎。
  3. 語言屬性支持多於一種語言。
  4. 指定您想要處理的圖像文件路徑,然後建立一個OcrInput物件。
  5. 現在,使用Read函式對輸入圖像進行OCR處理。
  6. 獲取結果並顯示已識別的文字。

What is Tesseract?

Tesseract是一個開放的光學字元識別引擎,由Hewlett-Packard開發,後來由Google維護。 它因其高準確性和適應性而著名,成為最突出的OCR之一。 Tesseract支持腳本檢測,能夠識別多種語言的文字,並能處理多語言; 因此,通常用於需要多語言文件和支持的專案。

Tesseract OCR引擎在圖像的每個像素中包含的資訊上工作,按照描述字元、單詞和句子的模式,最終轉換為機器可讀的文字。 它支持的許多圖像文件型別,如TIFF、JPEG和PNG,使得Tesseract可以以純文字、HTML和可搜尋PDF等格式生成文字。

Tesseract的一個主要優勢是它可以被訓練為對特定字體或新增的新語言敏感。 它還經常在各種應用中使用,從簡單的文字提取到數位化歷史文件、處理發票或甚至是為視障人士提供閱讀的輔助軟體等複雜任務。

在 Visual Studio 中建立新專案

打開程式Visual Studio。 在打開程式時,進入"文件選單"。在"文件選單"下有"新專案"選項。在"新專案"下,點擊"Console Application"。在這篇文章中,我們將使用控制台程式建立PDF文件。

Tesseract OCR for Multiple Languages (Developer Tutorial): 圖1 - 建立一個新專案

在提供的文字框中輸入您專案的名稱和文件的位置。 然後,如下圖所示,點擊建立按鈕並選擇您需要的.NET Framework。

Tesseract OCR for Multiple Languages (Developer Tutorial): 圖2 - 選擇.NET Framework並提供專案和保存位置。

現在選擇了應用程式版本,Visual Studio專案將建立其結構。 如果您選擇了控制台、Windows或網頁版本,它將打開program.cs文件以新增程式碼並構建/運行應用程式。

安裝Tesseract OCR For .NET

第一步是下載並安裝Tesseract OCR軟體到您的電腦。 這是官方的Tesseract GitHub庫,包含Tesseract安裝包:https://github.com/tesseract-ocr/tesseract

最好遵循與您的操作系統(無論是Windows、macOS或Linux)相對應的設置說明,將Tesseract OCR安裝到您的電腦上。 安裝完成後,使用Visual Studio的NuGet包管理器將Tesseract.NET包新增到您的C#專案中。

在Visual Studio專案中從工具 -> NuGet包管理器 -> 管理NuGet包以解決方案中打開NuGet包管理器。 隨後,在NuGet包管理器中搜索"Tesseract"以獲得"Tesseract"或"Tesseract.NET"包。 選擇此包並點擊安裝按鈕以將其安裝到您的專案中。

Tesseract OCR for Multiple Languages (Developer Tutorial): 圖3 - 在瀏覽選項卡中搜索Tesseract

Tesseract OCR using C

您必須在您的C#專案中設定Tesseract,以指定Tesseract OCR可執行文件和語言資料文件的位置,安裝Tesseract.NET包之後。 這裡是一個例子:

using System;
using System.Drawing;
using Tesseract;

class Program
{
    static void Main()
    {
        // Set the path to the Tesseract data files (traineddata files)
        string tessDataPath = @"./tessdata"; // Ensure this directory contains the language data files

        // Load the image
        string imagePath = @"path_to_your_image.png";
        using (var img = Pix.LoadFromFile(imagePath))
        {
            // Add languages to the Tesseract engine
            using (var engine = new TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default))
            {
                using (var page = engine.Process(img))
                {
                    // Extract the text
                    string text = page.GetText();
                    Console.WriteLine("Recognized Text:");
                    Console.WriteLine(text);
                }
            }
        }
    }
}
using System;
using System.Drawing;
using Tesseract;

class Program
{
    static void Main()
    {
        // Set the path to the Tesseract data files (traineddata files)
        string tessDataPath = @"./tessdata"; // Ensure this directory contains the language data files

        // Load the image
        string imagePath = @"path_to_your_image.png";
        using (var img = Pix.LoadFromFile(imagePath))
        {
            // Add languages to the Tesseract engine
            using (var engine = new TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default))
            {
                using (var page = engine.Process(img))
                {
                    // Extract the text
                    string text = page.GetText();
                    Console.WriteLine("Recognized Text:");
                    Console.WriteLine(text);
                }
            }
        }
    }
}
Imports System
Imports System.Drawing
Imports Tesseract

Friend Class Program
	Shared Sub Main()
		' Set the path to the Tesseract data files (traineddata files)
		Dim tessDataPath As String = "./tessdata" ' Ensure this directory contains the language data files

		' Load the image
		Dim imagePath As String = "path_to_your_image.png"
		Using img = Pix.LoadFromFile(imagePath)
			' Add languages to the Tesseract engine
			Using engine = New TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default)
				Using page = engine.Process(img)
					' Extract the text
					Dim text As String = page.GetText()
					Console.WriteLine("Recognized Text:")
					Console.WriteLine(text)
				End Using
			End Using
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

上面的程式碼解釋了Tesseract OCR如何檢測並從包含多種語言的圖像中提取文字。 它首先設置Tesseract語言資料文件的路徑。 每種對應語言所需的.traineddata文件,例如英語、西班牙語和法語,應出現在此路徑中。

Tesseract OCR for Multiple Languages (Developer Tutorial): 圖4 - 範例輸入

它使用imagePath指定的圖像。 更具體地說,預期到一個圖像,其中包含英語、西班牙語和法語文字。 然後,TesseractEngine的實例將初始化,並符合語言資料文件和關心的語言"eng+spa+fra"的路徑以識別文字。 引擎將在預設模式下工作。

Tesseract OCR for Multiple Languages (Developer Tutorial): 圖5 - 範例控制台輸出

然後使用引擎類的text中。 然後在控制台中列印提取的文字,建立OCR工作原理的可視化效果。

What is IronOCR?

IronOCR是一個專有的OCR程式庫,專注於.NET。 它為.NET應用程式新增OCR能力,允許從圖像、掃描文件、PDF以及所有其他視覺媒體中提取文字。 駕駛極為成功的Tesseract引擎進行尖端文字識別,IronOCR還包括幾個額外的功能,使其適合於在企業應用程式中使用。

IronOCR提供了卓越的語言支持,支援超過120種語言,支持自動語言檢測和同時處理包含多種語言的文件。 這使得IronOCR非常多樣化並可全球部署,在多語言文件處理至關重要的地方。

Tesseract OCR for Multiple Languages (Developer Tutorial): 圖6 - IronOCR: C# OCR程式庫

另一方面,IronOCR強調使用和整合的簡單性。 其極易使用的API由詳細的文件和一組範例專案補充,將幫助任何開發者迅速上手。 它支持多種圖像格式和PDF文件。 內建的高級圖像預處理、噪聲減少和錯誤校正功能提高了OCR的準確性和性能。

安裝 IronOCR

您可以使用Visual Studio的NuGet包管理工具將包直接安裝到您的解決方案中。 以下快照顯示如何打開NuGet包管理器。

Tesseract OCR for Multiple Languages (Developer Tutorial): 圖7 - 如何通過Visual Studio到達NuGet包管理器

它有嵌入的搜索框,顯示來自NuGet網站的包列表。如以下截圖所示,我們將在包管理器中搜索短語IronOCR:

Tesseract OCR for Multiple Languages (Developer Tutorial): 圖8 - 在解決方案資源管理器中搜索IronOCR

搜索結果可能提供一個潛在解決方案的列表。 您需要選擇安裝所需的解決方案包。

另外,一個一個安裝所需的Tesseract語言包,例如本例中所需的語言包。

在本例中,我們將使用西班牙語、法語和英語語言程式碼。 英語是預設的語言包,不需要安裝。

Tesseract OCR for Multiple Languages (Developer Tutorial): 圖9 - 安裝法語語言包

從NuGet包中安裝西班牙語。

Tesseract OCR for Multiple Languages (Developer Tutorial): 圖10 - 安裝西班牙語語言包

使用IronOCR與Tesseract引擎讀取多種語言

以下範例展示如何使用C#和IronOCR與Tesseract引擎從圖像中識別多種語言的文字。

using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();

        // Add multiple languages
        Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French;

        // Path to the image
        var inputFile = @"path\to\your\image.png";

        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            // Perform OCR
            var result = Ocr.Read(input);

            // Display the result
            Console.WriteLine("Recognized Text:");
            Console.WriteLine(result.Text);
        }
    }
}
using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();

        // Add multiple languages
        Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French;

        // Path to the image
        var inputFile = @"path\to\your\image.png";

        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            // Perform OCR
            var result = Ocr.Read(input);

            // Display the result
            Console.WriteLine("Recognized Text:");
            Console.WriteLine(result.Text);
        }
    }
}
Imports IronOcr

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize IronTesseract engine
		Dim Ocr = New IronTesseract()

		' Add multiple languages
		Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French

		' Path to the image
		Dim inputFile = "path\to\your\image.png"

		' Read the image and perform OCR
		Using input = New OcrInput(inputFile)
			' Perform OCR
			Dim result = Ocr.Read(input)

			' Display the result
			Console.WriteLine("Recognized Text:")
			Console.WriteLine(result.Text)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

上述C#程式使用IronOCR程式庫在包含英語、西班牙語和法語字元的圖像上執行光學字元識別。 程式開始時導入IronOCR所需的名稱空間,並聲明一個命名Main方法,這是應用程式的入口點。

在Main方法中,一個Ocr。 通過組合Language屬性以包含英語、西班牙語和法語。 這可以確保OCR引擎能夠識別並處理這三種語言中的任何文字。

使用inputFile變數設置輸入圖像文件的路徑。 然後在OcrInput類的實例進行適當的資源管理和釋放。 最後,使用IronTesseract實例的Read方法調用輸入物件來對圖像進行OCR。

然後使用Console.WriteLine方法將識別的文字列印到控制台。 此程式說明了如何有效地使用IronOCR的多語言功能從包含不同語言單詞的圖像中提取文字。

Tesseract OCR for Multiple Languages (Developer Tutorial): 圖11 - 已識別文字輸出

為何IronOCR優於Tesseract?

IronOCR相比於Tesseract更加以使用者為中心,並提供了一些優勢。 首先,IronOCR預設提供了優秀的語言支持,擁有125種語言,而Tesseract的100種支持語言中需要經過一些複雜的配置和額外訓練才能達到最佳性能。 此外,IronOCR易於整合到.NET應用程式,並附有全面的文件。

IronOCR較之Tesseract學習曲線較平緩,所需技術設置較少。 它還具有高級圖像預處理功能和定期更新,以提高複雜文件型別的準確性和可靠性。IronOCR對於尋求堅實多元且易於應用OCR解決方案的開發者是不錯的選擇。

結論

Tesseract OCR for Multiple Languages (Developer Tutorial): 圖12 - IronOCR許可頁

雖然Tesseract和IronOCR均為強大的OCR技術,但各自擁有獨特的功能和優勢。 作為開源軟體,Tesseract可靠且適用於任何尋求免費解決方案的人,並擁有活躍的社群和不斷的改進。

相比之下,IronOCR是針對.NET Framework的專有程式庫,提供改進的使用者體驗,易於整合並支持大多數圖像文件型別。它在文字識別中特別是處理低質量圖像內容時表現出色。 IronOCR完整支持多種語言,並具有額外功能,使其更具使用者友好性。

IronOCR提供了一個具有成本效益的開發版本並於購買後提供永久授權。 IronOCR包由$liteLicense起始,為多個系統提供一次性費用,提供了極佳的性價比,並向授權使用者提供24/7在線工程師支持。 欲了解更多資訊,請參考IronOCR網站。

常見問題

我如何在.NET專案中使用支持多語言的Tesseract OCR?

您可以使用IronOCR程式庫,這使整合Tesseract OCR處理多語言文字的圖片變得更簡單。在您的.NET專案中新增IronOCR/Tesseract NuGet包,並使用IronTesseract類的Language屬性配置語言。

IronOCR相比標準Tesseract有何優勢?

IronOCR為.NET應用提供了更友好的API,支持超過120種語言,並使用先進的圖像預處理提高準確性。它與.NET專案無縫整合,為開發者提供廣泛的文件和支援。

IronOCR能同時處理多語言文件嗎?

能,IronOCR可以通過設置Language屬性中的多個語言來處理多語言文件。此功能對於可能包含不同語言文字的全球應用特別有用。

如何在C#專案中設置IronOCR?

要在C#專案中設置IronOCR,首先通過Visual Studio的NuGet包管理器安裝IronOCR/Tesseract NuGet包。然後,在您的程式碼中建立IronTesseract類的實例,並使用其方法處理包含文字的圖片。

IronOCR如何提高OCR結果的準確性?

IronOCR通過先進的圖像預處理技術提高準確性,這些技術在提取文字之前增強了圖像質量。這項功能有助於準確識別不同質量的圖片中的文字。

IronOCR可以處理哪些型別的文件?

IronOCR可以處理多種文件型別,包括掃描圖像、PDF和數位相機拍攝的照片。它將這些文件轉換為可編輯和可搜尋的資料格式。

IronOCR適合自動化資料錄入任務嗎?

適合,IronOCR非常有效地將印刷文件轉換為數位文字,自動化資料錄入,減少人工勞動並節省時間。廣泛應用於金融、健康和教育等行業。

IronOCR如何支持開發者實施OCR技術?

IronOCR提供了豐富的文件、使用者友好的API和24/7線上工程師支援,讓開發者更輕鬆地在其.NET應用中實施OCR技術。

IronOCR的主要應用場景有哪些?

IronOCR用於將印刷文件數位化、資料錄入自動化、處理發票和為視障者開發無障礙軟體。適用於金融、醫療和教育等多個行業。

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

Iron 支援團隊

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