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"套件。 選擇此軟體包,然後按一下"安裝"按鈕將其安裝到您的專案中。
Tesseract OCR using C#
安裝 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 指定的圖片。 更具體地說,人們會期望看到一張包含英文、西班牙文和法文的圖片。 然後,將初始化 TesseractEngine 實例,其中包含語言資料檔案的路徑以及感興趣的語言"eng+spa+fra",以便識別文字。 引擎將以預設模式運作。
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 變數設定。 然後,將映像載入到 using 語句中,並使用 OcrInput 類別的實例進行適當的資源管理和處置。 最後,呼叫 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 以處理含有多種語言文字的圖像變得更加簡單。在您的 .NET 項目中添加 IronOCR/Tesseract NuGet 包,並使用 IronTesseract 類的 Language 屬性配置語言。
IronOCR 比標準 Tesseract 提供了哪些優勢?
IronOCR 提供了更方便用戶的 API 用於 .NET 應用,支援超過 120 種語言的即用即用功能,並提供先進的圖像預處理技術以提高準確性。它無縫集成於 .NET 項目中,為開發人員提供了豐富的文檔和支援。
IronOCR 能否同時處理多種語言的文檔?
可以,IronOCR 可以通過在 Language 屬性中設置多種語言來處理多語言文檔。此功能特別適合於包含不同語言文字的文件的全球應用。
如何在 C# 項目中設置 IronOCR?
要在 C# 項目中設置 IronOCR,首先通過 Visual Studio 的 NuGet Package Manager 安裝 IronOCR/Tesseract NuGet 套件。然後,在您的代碼中創建 IronTesseract 類的實例,並使用其方法來處理包含文字的圖像。
IronOCR 如何提高 OCR 結果的準確性?
IronOCR 通過先進的圖像預處理技術提高準確性,這些技術在文字提取之前提升圖像質量。這一功能有助於從質量參差不齊的圖像中準確地識別文字。
IronOCR可處理哪些類型的文件?
IronOCR 可以處理各種文件類型,包括掃描的圖像、PDF 和數碼相機拍攝的照片。它將這些文件轉換為可編輯和可搜索的資料格式。
IronOCR 適合自動化資料輸入任務嗎?
是的,IronOCR 非常適合透過將打印文件轉換為數字文字來自動化資料輸入,減少人工勞力並節省時間。它被廣泛應用於金融、健康和教育等行業。
IronOCR 如何支援開發人員實施 OCR 技術?
IronOCR 提供豐富的文檔、易於使用的 API 和全天候在線工程師支援,使開發人員更容易在其 .NET 應用中實施 OCR 技術。
IronOCR 的主要應用場景有哪些?
IronOCR 用於數位化印刷文件、自動化資料輸入、處理發票和開發供視力受損用戶使用的輔助軟體。它適用於各個行業,包括金融、醫療保健和教育。

