在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
OCR 是一種技術,用於將性質不同的文件轉換為可編輯和可搜尋的數據。 它將掃描的圖像、PDF 文件和數碼相機照片轉換為可以編輯和搜索的數據。 這項技術廣泛用於將印刷文件轉換為數位形式,以便進行編輯、搜尋和存儲,從而減少文件佔用的實體空間。 光學字符識別在資料輸入自動化中扮演著重要角色,從而通過減少人力資源使用的勞動力為公司和組織節省大量時間。
這是一個使用先進的機器學習技術和模式識別從圖像中準確提取文本的過程。 有關 OCR 的最新發展提高了其準確性,從而支援更多語言和複雜文字,例如阿拉伯文字。 在金融、健康、立法和教育領域,OCR(光學字符識別)已成為不可或缺的工具,因為快速處理多份印刷文件是必備條件。本文將使用 Tesseract 來對多語言數據的圖像進行 OCR 處理。
首先,在您的 .NET 專案中安裝 IronOCR/Tesseract NuGet 套件。
將會建立一個IronTesseract類別實例,進一步初始化OCR引擎。
它的設計使語言屬性支持超過一種語言。
指定要處理的圖像檔案路徑,然後創建一個 OcrInput 對象。
現在,使用 IronTesseract 實例的 Read 函數對輸入圖像執行 OCR。
Tesseract 是由惠普開發,後來由 Google 維護的開源光學字符識別引擎。 它以高準確性和適應性而聞名,使其成為最突出的 OCR 之一。 Tesseract支持腳本檢測,可以識別多種語言的文本,並能處理多種語言; 因此,它通常用於需要多語文件和支持的專案。
Tesseract OCR 引擎處理影像中每個像素中的資訊,根據顯示字符、單詞和句子的模式,最終轉換為機器可讀的文本。 它支援多種圖像文件類型,例如 TIFF、JPEG 和 PNG,使得 Tesseract 能夠生成純文本、HTML 和可搜索的 PDF 等格式的文字。
Tesseract 的一個顯著優勢是,它可以被訓練以對特定的字體或新增的語言敏感。 它也經常用於各種應用程式,從簡單的文字擷取到數位化歷史文件、處理發票,甚至是為視障人士提供閱讀功能的輔助軟體等複雜任務。
打開程式 Visual Studio。 打開程式後,進入“檔案選單”。在“檔案選單”下,有“新專案”選項。在“新專案”下,點擊“主控台應用程式”。在這篇文章中,我們將使用主控台程式建立 PDF 文件。
輸入專案的名稱和檔案的位置到提供的文字框中。 然後,如下圖所示,點擊「Create」按鈕並選擇您需要的 .NET Framework。
現在已選擇應用程式版本,Visual Studio 專案將建立其結構。 如果您選擇了控制台、Windows或網頁版本,它將打開程式的.cs文件來添加程式碼並構建/運行應用程式。
第一步是在您的電腦上下載並安裝 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.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 tesseract languages into 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 tesseract languages into 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 tesseract languages into 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 文件,例如英語、西班牙語和法語。
它將 imagePath 指定的圖像加載到 Pix.LoadFromFile 方法中。 更具體地說,可以預期圖像上會有英文、西班牙文和法文文字。 接著,將使用語言數據文件路徑和感興趣的語言 "eng+spa+fra" 初始化 TesseractEngine 實例以識別文本。 引擎將在默認模式下運行。
然後,圖像將被傳入引擎類的 Process 方法,該方法將分析圖像,提取文本內容,並存儲在變量 text 中。 最後,提取的文本將被打印到控制台中,從而創建一個OCR工作原理的可視化。
IronOCR 是一個專有的 OCR 庫,專注於 Dot NET。 它為 .NET 應用程式添加 OCR 功能,並允許從影像、掃描文件、PDF 及所有其他視覺媒體中提取文字。 IronOCR 採用極為成功的 Tesseract 引擎,驅動尖端的文字辨識技術,同時還包括多種附加功能,使其適合用於企業應用程式。
這使得IronOCR非常出色——其強大的語言支持——超過120種語言,並支持自動語言檢測及同時處理包含多種語言的文件。 反過來,這使得IronOCR非常多功能,並且可以在全球範圍內部署,其中多語言文件處理至關重要。
另一方面,IronOCR 仍然強調使用和整合的簡單性。 其極易使用的 API 附有詳細的文檔和一套範例專案,這將幫助任何開發人員快速啟動並運行。 它支援多種影像格式和 PDF 文件。 內建的高級圖像預處理、降噪和錯誤校正功能提高了OCR的準確性和性能。
您可以使用 Visual Studio 的 NuGet 套件管理工具將套件直接安裝到您的解決方案中。 下圖顯示如何開啟 NuGet 套件管理器。
它有一個內嵌搜尋框,需要顯示來自 NuGet 網站的套件列表。如下圖所示,我們將在套件管理中搜尋短語 IronOCR:
上面的圖可能提供了一份有效搜尋詞的清單。 我們需要選擇安裝解決方案包所需的內容。
此外,請逐一安裝所需的Tesseract語言包,例如以下這個語言包。
在此範例中,我們將使用西班牙語、法語和英語的語言代碼。 英文是預設的語言包,因此不需要安裝。
從 NuGet 套件安裝西班牙語。
以下示例演示如何使用 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("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("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("Text:")
Console.WriteLine(result.Text)
End Using
End Sub
End Class
上述 C# 程式是使用 IronOCR 程式庫來對包含英文、西班牙文和法文字符的圖像進行光學字符識別的範例。 此範例首先匯入 IronOCR 所需的命名空間,接著宣告一個名為 program 的類別,其中包含 Main 方法,這是應用程式的進入點。
首先,在 Main 方法中,實例化 IronTesseract 類的一個實例。 此實例將被指派給變數 Ocr。 然後,這個語言屬性此實例通過結合 OcrLanguage.English、OcrLanguage.Spanish 和 OcrLanguage.French 設置為包括英語、西班牙語和法語。 這一切將確保OCR引擎能夠識別和處理這三種語言中的文本。
首先,使用 inputFile 變數設定圖像文件的輸入路徑。 在下一行中,將此圖像加載到 OcrInput 類的語句中,以便進行聲音資源管理和處置。 最後,使用輸入對象調用 IronTesseract 實例的 Read 方法並執行圖像上的OCR。
最後,結果將被檢查以確認識別的文本,並在控制台輸出。 這些 Console.WriteLine 陳述式將輸出檢測到的文本,讓使用者可以看到 OCR 結果。 該程式展示了一種有效的方法來使用IronOCR的多語言功能,從不同語言的文字圖像中提取文本。
與 Tesseract 相比,它相當友好且具有一些優勢。 首先,IronOCR 提供出色的語言支援。 該引擎開箱即用支持127種語言,而Tesseract據報支持約100種語言; 然而,通常需要複雜的配置和額外的訓練以達到最佳效能。 此外,IronOCR 更容易使用,因為它可以輕鬆整合到 .NET 應用程序中並完成文檔。
相比於 Tesseract,IronOCR 使用起來更加簡單,學習曲線不那麼陡峭,技術設置也較少。不僅如此,IronOCR 配備了先進的圖像預處理功能,並定期進行功能更新,以提高對於複雜和多樣化文件的準確性和可靠性。IronOCR 對於任何尋求堅固、多功能且易於應用的 OCR 解決方案的開發人員來說是更好的選擇。
雖然 Tesseract 和 IronOCR 代表了非常強大的 OCR 技術,但每種技術都有其獨特的功能和優勢。 此外,由於 Tesseract 是開源的,被廣泛使用,並且在語言可用性和靈活性方面處於領先地位,因此它尤為突出。 對於任何尋求擁有活躍社群和持續改進的免費解決方案的人來說,這是可靠的選擇。
相比之下,IronOCR 是一個 .NET Framework 的專有庫,通過更簡便的整合和對大多數圖像文件類型的卓越支持來提升用戶體驗。它還具備出色的文字識別性能,其中一個亮點是能處理低質量的圖像內容。 IronOCR 完全支援多種語言,並且具備一些額外功能,使其對於尋求簡易性和完整支援的開發者更為友好和全面。
IronOCR 提供具成本效益的開發版。 當您購買 IronOCR 套件時,您將獲得終身許可證。 由於IronOCR的價格從749美元起,一次性費用可用於多個系統,這提供了極佳的性價比。 它為IronOCR授權用戶提供24*7的在線工程師支持。 請參考IronOCR網站以了解更多關於費用的資訊; 如需了解有關 Iron Software 產品的更多信息,請參見這裡.