跳過到頁腳內容
使用 IRONOCR

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

OCR 是一種將不同性質的文件轉換為可編輯和可搜尋資料的技術。 它可以將掃描影像、PDF 檔案和數位相機照片轉換為可編輯和可搜尋的資料。 這項技術被廣泛用於將印刷文件轉換為數位形式,以便進行編輯、搜尋和存儲,從而減少文件所佔用的實體空間。 OCR在資料輸入自動化中發揮巨大作用,透過減少人力資源投入,為公司和組織節省了大量時間。

它利用先進的機器學習技術和模式識別技術,從圖像中準確提取文字。 OCR技術的最新發展提高了其準確性,從而支援更多語言和複雜的文字,例如阿拉伯文字。 OCR技術在金融、醫療、立法和教育等領域至關重要,尤其是在需要快速處理大量印刷文件的情況下,它已成為不可或缺的工具。本文將使用Tesseract軟體對多種語言的影像進行OCR辨識。

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

  1. 首先,在您的 .NET 專案中安裝 IronOCR/Tesseract NuGet 套件。
  2. 建立IronTesseract類別的實例,該實例將初始化 OCR 引擎。
  3. 語言屬性支援多種語言。
  4. 指定要處理的影像檔案路徑,然後建立OcrInput物件。
  5. 現在,使用IronTesseract實例的Read函數對輸入影像執行 OCR。
  6. 取得結果並顯示辨識出的文字。

什麼是超立方體

Tesseract 是由惠普公司開發,後來由Google公司維護的開源光學字元辨識引擎。 它以其高精度和適應性而聞名,使其成為最傑出的OCR之一。 Tesseract 支援腳本偵測,可辨識多種語言的文本,並能處理多種語言; 因此,它通常用於需要多語言文件和支援的項目。

Tesseract OCR 引擎利用圖像中單個像素所包含的資訊進行工作,遵循描繪字符、單字和句子的模式,最終將其轉換為機器可讀的文本。 Tesseract 支援多種影像檔案類型,例如 TIFF、JPEG 和 PNG,因此可以產生純文字、HTML 和可搜尋 PDF 等格式的文字。

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

在 Visual Studio 中建立新專案

開啟 Visual Studio 程式。 開啟程式後,進入"檔案"選單。在"檔案"選單下,找到"新建項目"選項。在"新建專案"下,點選"控制台應用程式"。本文將介紹如何使用控制台程式建立 PDF 文件。

Tesseract OCR 多語言辨識(開發者教學):圖 1 - 建立新項目

請在提供的文字方塊中輸入項目名稱和文件位置。 然後,如下圖所示,按一下"建立"按鈕,然後選擇所需的 .NET Framework 版本。

Tesseract OCR 多語言版(開發者教學):圖 2 - 選擇 .NET Framework,並提供專案和保存位置。

應用程式版本選定後,Visual Studio 專案將建立其結構。 如果您選擇了控制台版本、Windows 版本或 Web 版本,它將開啟program.cs檔案以新增程式碼並建置/執行應用程式。

安裝適用於 .NET 的 Tesseract OCR

第一步是在您的電腦上下載並安裝 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(開發者教學):圖 3 - 在瀏覽標籤中搜尋 Tesseract

使用 C# 的 Tesseract OCR

安裝 Tesseract.NET 包裝器後,您必須在 C# 專案中設定 Tesseract,以指定 Tesseract OCR 執行檔和語言資料檔案的位置。 以下是一個範例:

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 多語言辨識(開發者教學):圖 4 - 輸入範例

它使用Pix.LoadFromFile方法載入imagePath指定的映像。 更具體地說,人們會期望看到一張包含英文、西班牙文和法文的圖片。 然後,將使用語言資料檔案路徑和感興趣的語言"eng+spa+fra"初始化TesseractEngine實例,以識別文字。 引擎將以預設模式運作。

Tesseract OCR 多語言辨識(開發者教學):圖 5 - 控制台輸出範例

然後使用引擎類別的Process方法處理影像,對其進行分析,提取文字內容,並將其儲存在變數text中。 然後將提取的文字列印到控制台,從而可視化展示 OCR 的工作原理。

IronOCR是什麼**?**

IronOCR 是一個專注於 .NET 的專有 OCR 庫。 它為 .NET 應用程式添加了 OCR 功能,允許從圖像、掃描文件、PDF 和所有其他視覺媒體中提取文字。 IronOCR 採用極其成功的 Tesseract 引擎驅動尖端文字識別,還包含幾個附加功能,使其適用於企業應用程式。

IronOCR 提供強大的語言支援——支援 120 多種語言,並支援自動語言偵測和同時處理包含多種語言的文件。 這使得 IronOCR 非常通用,可在全球範圍內部署,而多語言文件處理在多語言文件處理方面至關重要。

Tesseract OCR 多語言辨識(開發者教學):圖 6 - IronOCR:C# OCR 函式庫

另一方面,IronOCR 強調易用性和整合性。 它極其易用的 API 輔以詳細的文件和一系列範例項目,可幫助任何開發人員快速上手。 它支援多種影像格式和PDF文件。 內建的進階影像預處理、降噪和糾錯功能提高了 OCR 的準確性和效能。

安裝 IronOCR

您可以使用 Visual Studio 的 NuGet 套件管理工具將套件直接安裝到您的解決方案中。 以下截圖展示如何開啟 NuGet 套件管理器。

Tesseract OCR 多語言識別(開發者教學):圖 7 - 如何透過 Visual Studio 存取 NuGet 套件管理器

它內建了一個搜尋框,會顯示來自 NuGet 網站的套件清單。如下面的螢幕截圖所示,我們將在套件管理器中搜尋短語"IronOCR":

Tesseract OCR 多語言辨識(開發者教學):圖 8 - 在解決方案資源管理器中搜尋 IronOCR

搜尋結果可能會提供一系列潛在的解決方案。 您需要選擇要安裝的解決方案套件。

此外,請逐一安裝所需的 Tesseract 語言包,例如本範例中的語言包如下。

在這個例子中,我們將使用西班牙語、法語和英語的語言代碼。 英語是預設語言包,無需安裝。

Tesseract OCR 多語言版(開發者教學):圖 9 - 安裝法語語言包

從 NuGet 套件安裝西班牙語。

Tesseract OCR 多語言版(開發者教學):圖 10 - 安裝西班牙語語言包

使用配備 Tesseract 引擎的 IronOCR 讀取多種語言

以下範例示範如何使用 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 所需的命名空間,並聲明一個名為Program類,其中包含一個Main方法,這是應用程式的入口點。

在 Main 方法中,實例化IronTesseract類別的一個實例並將其賦值給變數OcrLanguage屬性設定為包含英語、西班牙語和法語,方法是將OcrLanguage.EnglishOcrLanguage.SpanishOcrLanguage.French組合在一起。 這樣可以確保 OCR 引擎能夠識別和處理這三種語言中的任何一種的文字。

輸入影像檔案的路徑透過inputFile變數設定。 然後,使用OcrInput類別的實例在using語句中載入映像,以便進行正確的資源管理和釋放。 最後,呼叫 IronTesseract 實例的Read方法,傳入輸入對象,對影像執行 OCR 操作。

然後使用Console.WriteLine方法將識別出的文字列印到控制台。 該程式演示了一種利用 IronOCR 的多語言功能從包含不同語言單字的圖像中提取文字的有效方法。

Tesseract OCR 多語言辨識(開發者教學):圖 11 - 辨識的文字輸出

為什麼 IronOCR 比 Tesseract 更好?

與 Tesseract 相比,IronOCR 更易於使用,並具有一些優勢。 首先,IronOCR 提供出色的語言支持,開箱即用即可支援 125 種語言,而 Tesseract 可能需要複雜的配置和額外的培訓才能在其支援的 100 種語言中實現最佳性能。 此外,IronOCR 可以輕鬆整合到 .NET 應用程式中,並附帶全面的文件。

IronOCR 的學習曲線比 Tesseract 更平緩,所需的技術設定也更少。 它還具備高級影像預處理功能,並定期更新,以提高對複雜文件類型的識別準確性和可靠性。對於尋求穩定、通用且易於應用的 OCR 解決方案的開發人員而言,IronOCR 是一個絕佳的選擇。

結論

Tesseract OCR 多語言辨識(開發者教學):圖 12 - IronOCR 授權頁面

Tesseract 和 IronOCR 都是強大的 OCR 技術,但它們各自具有獨特的功能和優勢。 Tesseract 是開源軟體,對於任何尋求免費解決方案的人來說都是可靠的,並且擁有活躍的社群和持續的改進。

相較之下,IronOCR 是一個專有的 .NET Framework 程式庫,它提供更佳的使用者體驗,整合更便捷,並支援大多數映像檔類型。它在文字辨識方面也表現出色,尤其是在處理低品質影像內容時。 IronOCR 完全支援多種語言,並具有使其更加用戶友好的額外功能。

IronOCR 提供經濟實惠的開發版本,購買後即可獲得終身許可證。 IronOCR 套餐起價為 $liteLicense,一次性費用即可用於多個系統,物超所值,並為授權用戶提供 24/7 線上工程師支援。 更多信息,請參閱IronOCR網站。

常見問題解答

如何在 .NET 專案中以多種語言使用 Tesseract OCR?

您可以使用 IronOCR 函式庫,它可以簡化 Tesseract OCR 的整合,以處理包含多國語言文字的影像。將 IronOCR/Tesseract NuGet 套件新增至您的 .NET 專案,並使用 IronTesseract 類的 Language 屬性來設定語言。

與標準的 Tesseract 相比,IronOCR 有哪些優勢?

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 以及全天候的線上工程師支援,讓開發人員更容易在其 .NET 應用程式中實作 OCR 技術。

IronOCR 的主要用例是什麼?

IronOCR 可用於印刷文件數位化、自動化資料輸入、處理發票,以及為視障使用者開發無障礙軟體。它適用於各行各業,包括金融、醫療保健和教育。

Kannaopat Udonpant
軟體工程師
在成為软件工程師之前,Kannapat 從日本北海道大學完成了環境資源博士學位。在追逐學位期间,Kannapat 還成為了生產工程系一部份——汽車机器人实验室的成員。2022 年,他利用他的 C# 技能加入 Iron Software 的工程團隊, 專注於 IronPDF。Kannapat 珍惜他的工作,因为他直接向编写大部分 IronPDF 使用的代码的开发者学习。除了同行学习,Kannapat 还喜欢在 Iron Software 工作的社交十环。当他不编写代码或文档时,Kannapat 通常在他的 PS5 上打游戏或重看《The Last of Us》。