OCR 在 SaaS 應用中的好處包括提高效率和準確性,通過自動化文本識別任務,企業可以省時省錢並降低手動輸入錯誤。
OCR 是一種將不同性質的文件轉換為可編輯和可搜尋資料的技術。 它可以將掃描影像、PDF 檔案和數位相機照片轉換為可編輯和可搜尋的資料。 這項技術被廣泛用於將印刷文件轉換為數位形式,以便進行編輯、搜尋和存儲,從而減少文件所佔用的實體空間。 OCR在資料輸入自動化中發揮巨大作用,透過減少人力資源投入,為公司和組織節省了大量時間。
它利用先進的機器學習技術和模式識別技術,從圖像中準確提取文字。 OCR技術的最新發展提高了其準確性,從而支援更多語言和複雜的文字,例如阿拉伯文字。 OCR技術在金融、醫療、立法和教育等領域至關重要,尤其是在需要快速處理大量印刷文件的情況下,它已成為不可或缺的工具。本文將使用Tesseract軟體對多種語言的影像進行OCR辨識。
如何使用 Tesseract OCR 處理多種語言
- 首先,在您的 .NET 專案中安裝 IronOCR/Tesseract NuGet 套件。
- 建立
IronTesseract類別的實例,該實例將初始化 OCR 引擎。 - 語言屬性支援多種語言。
- 指定要處理的影像檔案路徑,然後建立
OcrInput物件。 - 現在,使用
IronTesseract實例的Read函數對輸入影像執行 OCR。 - 取得結果並顯示辨識出的文字。
什麼是超立方體?
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"套件。 選擇此軟體包,然後按一下"安裝"按鈕將其安裝到您的專案中。
使用 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以上程式碼解釋了 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 引擎的 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上述 C# 程式使用 IronOCR 函式庫對包含英文、西班牙文和法文字元的影像執行光學字元辨識。 程式首先導入 IronOCR 所需的命名空間,並聲明一個名為Program類,其中包含一個Main方法,這是應用程式的入口點。
在 Main 方法中,實例化IronTesseract類別的一個實例並將其賦值給變數Ocr 。 Language屬性設定為包含英語、西班牙語和法語,方法是將OcrLanguage.English 、 OcrLanguage.Spanish和OcrLanguage.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 可用於印刷文件數位化、自動化資料輸入、處理發票,以及為視障使用者開發無障礙軟體。它適用於各行各業,包括金融、醫療保健和教育。







