在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
光學字符識別識別圖像中可以讀取的文本。 光學字符識別有多種使用方式。 例如,這可以掃描和數位化舊紙質文件,將其轉換為可搜索的電子文件。 對執法機構來說,透過檢查照片和視頻來識別犯罪證據也是很有用的。 要讓機器或電腦能夠識別任何文件上的字元,必須理解所使用的字體和這些字元所屬的書寫系統。 通常,這種理解來自於稱為圖像識別算法的人工智慧軟體,這些算法在大量文本圖像數據集上進行訓練和調整。
OCR 是一項具有多種用途的重要技術。 它常用於閱讀掃描的紙質文件,將其轉換為可通過電腦編輯和搜尋的數位檔案。 然而,OCR 也可以應用於各種類型的資訊,包括標誌或標籤上的印刷文字、支票、表單及其他商業記錄中的手寫或打字文字,甚至從音頻記錄轉錄的醫療記錄。
在本文中,我們將比較兩個 .NET OCR 庫。
IronOCR 是最新且最先進的 OCR(光學字符識別).NET C# 和 VB 的庫。 IronOCR 可以從所有圖像格式中掃描條碼和 QR 碼,並使用最新的 Tesseract 5 引擎讀取文本和執行 PDF 掃描。IronOCR 可以在所有 .NET 專案範本中添加 OCR 功能,例如桌面應用程式、控制台和網頁應用程式,只需幾行代碼而不需要添加庫。 IronOCR 是適用於 .NET 專案中最準確的 OCR 引擎之一。
讓我們討論一下IronOCR的一些獨特功能:
IronOCR 可以輕鬆地對 PDF 文件執行 OCR 並使用 OCR 匯出可搜尋的 PDF 文件。
IronOCR 支援所有主要語言,包括阿拉伯語、中文、英語、芬蘭語、法語、德語、日語和更多語言。 IronOCR 提供功能以不同格式顯示輸出,例如條碼數據、純文本或包含行、字詞、段落和字符的 OCR 結果類別。 IronOCR 使用 Tesseract 庫技術。
IronOCR 與 Mac、Windows 和 Linux 機器兼容。 它還支援 Azure 和 Docker 的雲端解決方案。 IronOCR 的最新更新將 .NET core 3.1 和 .NET 6 包含在支持列表中,還提供對 MacOS 的 Xamarin 的支持。
Tesseract.net SDK 是 Patagames 的一款產品,這是一種光學字符識別技術。(光學字符識別)用於 .NET 專案的函式庫,並提供一種方法以在 .NET 應用程式中添加如文字識別的 OCR 能力。 Tesseract.NET SDK 是一個光學字符識別 (OCR) 引擎,可以讀取各種圖像格式並將圖像轉換為文本。 它支持多達 60 種語言。 它還支持讀取和掃描 PDF 文件,並將其轉換為可搜索的 PDF 檔案。 基本上,Tesseract.NET SDK 是一個基於 Tesseract OCR 項目的類庫。 它有一個 Tesseract 引擎用於執行 OCR。 Patagames.Ocr.xml 包含 API 的XML 文件。
Tesseract.NET SDK 支援 32 位元和 64 位元作業系統上的 .NET Framework 2.0 到 4.5。 此 SDK 可用於 Windows XP 及其他 Windows 版本,如 Windows 7、Vista、8、10 和 11。它與 32 位和 64 位作業系統相容,因此可在任何 CPU 上輕鬆使用。
很遺憾,.NET SDK 無法在 macOS 或 Linux 上使用。
讓我們看看如何在專案中使用 IronOCR 和 Tesseract.NET SDK。
我們正在使用 Visual Studio 2022 版本來創建這個項目。 建議使用最新版本的 Visual Studio 以確保順利進行。 接下來,打開 Visual Studio 並點擊「建立新專案」。 之後,從範本中選擇「控制台應用程式」,然後配置您的專案。
現在輸入專案名稱。 我將指定名稱為「IronOCR vs Tesseract.NET SDK」。 之後,選擇您想要創建專案的路徑,然後按下 Enter。
之後,選擇 .NET 版本。 我們使用最新版本的 .NET,即 .NET 6,而 IronOCR 支援它。 您可以使用最適合專案需求的選項。
點擊「建立」按鈕後,專案範本將建立專案,現在可以安裝庫了。 讓我們直接安裝庫。
現在是安裝庫並檢查功能的時候了。 首先,我們將安裝IronOCR庫。
IronOCR 支持使用多種方法進行安裝。 我們可以選擇任何方法。 所有方法都是安全的。
我們可以使用 Visual Studio 中的 NuGet 套件管理器 GUI 安裝 IronOCR 庫。 我們可以透過點擊 工具 > NuGet 套件管理器 > 管理解決方案的 NuGet 套件 來存取。
前往「瀏覽」標籤並搜尋 IronOCR。 從搜索結果中選擇IronOCR並將其安裝到我們的專案中。
現在,我們已經在專案中安裝了IronOCR庫。 它已準備好用於我們的 .NET 專案。
我們可以使用 NuGet 套件管理器控制台安裝 IronOCR 庫。 前往命令行,通常位於代碼文件下方,然後在命令行中輸入以下行並按下 Enter。 請提供內容以進行翻譯。
Install-Package IronOcr 請提供內容以進行翻譯。
它將開始安裝IronOCR庫。 安裝後,它將可以在我們的項目中使用。
我們可以使用 NuGet 套件管理器安裝 Tesseract.NET SDK。 若要安裝 Tesseract.NET SDK,請前往 Tools > NuGet Package Manager > Manage NuGet Packages for Solution。 轉到「Browse」標籤,搜尋 Tesseract.NET SDK。 從搜尋結果中選擇 Tesseract.NET SDK 並安裝它。 安裝後,我們可以在程式中使用 Tesseract.NET SDK。
安裝後,您可以在解決方案資源管理器中看到這三個文件夾。
這些資料夾包含 Tesseract 執行 OCR 所需的重要資料。 現在我們準備在專案中嵌入 OCR 功能。
現在是測試IronOCR和Tesseract.NET SDK功能的時候。 兩個函式庫都可以對影像執行 OCR。 我們將使用帶有文字的傾斜和噪音圖像對它們進行測試。
這是我們用來測試的圖像。
首先,我們將查看由 Tesseract.NET SDK 針對測試圖像生成的輸出。 讓我們看看程式碼:
using Patagames. Ocr;
using (var api = OcrApi.Create())
{
api.Init(Patagames.Ocr.Enums.Languages.English);
string plainText = api.GetTextFromImage(@"C:\Users\Administrator\Desktop\Input.jpg");
Console.WriteLine(plainText);
}
using Patagames. Ocr;
using (var api = OcrApi.Create())
{
api.Init(Patagames.Ocr.Enums.Languages.English);
string plainText = api.GetTextFromImage(@"C:\Users\Administrator\Desktop\Input.jpg");
Console.WriteLine(plainText);
}
Imports Patagames.Ocr
Using api = OcrApi.Create()
api.Init(Patagames.Ocr.Enums.Languages.English)
Dim plainText As String = api.GetTextFromImage("C:\Users\Administrator\Desktop\Input.jpg")
Console.WriteLine(plainText)
End Using
首先,我們將導入Patagames。 用於使用 Tesseract.NET SDK 的 OCR 庫。 之後,我們將使用 Create 函數創建一個 OcrApi。 然後,我們將使用 Init 函數將預設語言設定為英語。 接下來,我們使用GetTextFromImage方法從圖像中提取純文字,在參數中提供圖像文件的路徑。 然後,我們將提取的文本寫到控制台。
接下來,看看由 Tesseract.NET SDK 生成的輸出:
因此,這是我們從 Tesseract.NET SDK 獲得的輸出。 起初,根據解析度給出錯誤,顯示它僅適用於高解析度的圖像。 在錯誤之後,我們可以看到從圖像中提取的文本。 如果我們將此文本與圖像進行比較,我們會發現它完全不同。 提取的文本包含許多無關的文字,沒有意義。 總體而言,Tesseract.NET SDK 未通過此測試。
接下來,我們將看到來自IronOCR的結果。 在查看結果之前,我們將首先查看IronOCR的代碼:
using IronOcr;
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
using (var Input = new OcrInput())
{
Input.AddImage(@"C:\Users\Administrator\Desktop\Input.jpg");
Input.Deskew();
Input.DeNoise();
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
using (var Input = new OcrInput())
{
Input.AddImage(@"C:\Users\Administrator\Desktop\Input.jpg");
Input.Deskew();
Input.DeNoise();
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Using Input = New OcrInput()
Input.AddImage("C:\Users\Administrator\Desktop\Input.jpg")
Input.Deskew()
Input.DeNoise()
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
在上述程式碼中,我們將 IronOCR 函式庫匯入到我們的程式中,然後創建一個 IronTesseract 物件來協助啟動該過程。 之後,我們將程序語言設置為英語。 現在真正的工作可以開始了。 我們建立 OcrInput 物件。 使用 AddImage 函數將圖像路徑賦值給 Input 變量。 我們使用 Deskew 功能將影像旋轉至實際位置,然後使用 Denoise 功能去除影像中的噪聲。 這將提供更好的結果。 之後,我們使用 Read 函數來識別文本並從測試圖像中提取它。 接下來,我們在控制台中顯示結果。 您也可以將輸出結果儲存為 PDF 檔案於專案檔中。
以下是由 IronOCR 生成的輸出:
如果我們比較輸出,它是與圖片上所顯示的文本相同的文本。 IronOCR可以完美地提取文字,沒有任何錯誤。 IronOCR 可以從扭曲和旋轉的圖像中提取文本。 它甚至可以與低解析度的圖像一起使用。
IronOCR 也支持添加多幀影像。 我們可以使用 "AddMultiFrameTiff" 方法來執行此操作。 IronOCR 會讀取圖片中的每一幀,每一幀都被視為單獨的頁面。 使用此方法僅支持 Tiff 圖像。
using IronOcr;
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
Input.AddMultiFrameTiff("images/multiframe.tiff");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
using IronOcr;
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
Input.AddMultiFrameTiff("images/multiframe.tiff");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Imports IronOcr
Private Ocr = New IronTesseract()
Using Input = New OcrInput()
Input.AddMultiFrameTiff("images/multiframe.tiff")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
讓我們看看製作可搜尋PDF的程式碼:
using IronOcr;
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
Input.AddImage(@"images\page1.png")
Input.AddImage(@"images\page2.bmp")
Input.AddMultiFrameTiff(@"images\page3.tiff")
Input.Deskew();
var Result = Ocr.Read(Input);
Result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
Input.AddImage(@"images\page1.png")
Input.AddImage(@"images\page2.bmp")
Input.AddMultiFrameTiff(@"images\page3.tiff")
Input.Deskew();
var Result = Ocr.Read(Input);
Result.SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr
Private Ocr = New IronTesseract()
Using Input = New OcrInput()
Input.AddImage("images\page1.png") Input.AddImage("images\page2.bmp") Input.AddMultiFrameTiff("images\page3.tiff") Input.Deskew()
Dim Result = Ocr.Read(Input)
Result.SaveAsSearchablePdf("searchable.pdf")
End Using
SaveAsSearchablePdf 函數有助於將文件保存為可搜索的格式。
IronOCR 支援 127 種語言。 IronOCR還支持超過20種類型的QR碼和條碼的讀取。 IronOCR 可以將圖像轉換為灰階,以獲得更好的結果。 IronOCR 可以手動和自動提升圖像解析度。 它還支持自動對比功能,以獲得最佳效果。 IronOCR 可以將文件匯出成多種語言和格式,如可搜尋的 PDF、HTML 匯出和任何頁面的圖像。 IronOCR 支援多種輸入格式,例如以下格式:
IronOCR 在開發階段是免費的。 它還提供開發的免費試用版。 IronOCR 提供多種生產環境的定價方案。 您可以購買最符合您需求的方案。 有個人、開發團隊和組織層級的定價方案。 價格起始於 $749,適用於一位開發者和一個專案的Lite計劃。 所有方案均為一次性付款。 用戶可免費獲得一年更新。 它也支持 SaaS 和 OEM 覆蓋。 專業方案的價格為 $999,無限方案的價格則為 $2999。無限方案包括無限的開發人員、專案和地點。
您可以點擊此連結了解更多關於價格方案的資訊。 連結. 此外,Iron Software 現在推出特別優惠,您可以以兩套的價格購買五個軟體套裝。 這五個軟體套件都非常出色:IronPDF、IronXL、IronOCR、IronBarcode 和 IronWebscraper。
Tesseract.NET SDK 也有定價方案。 Tesseract.NET SDK 計劃從 $220 起,適用於一名開發人員和一個項目。 在此需知的一件重要事情是定價方案包括一個續約計畫。 所以,您必須每年或每月支付費用以確保Tesseract.NET SDK在您的專案中正常運行。 您可以在此了解更多有關 Tesseract.NET SDK 的定價方案 連結.
IronOCR 是執行手頭任務的完美程式庫。 IronOCR 也支持 127 種語言,這意味著它在全球範圍內都被接受。 它支持多種圖像格式和 PDF 作為輸入處理。 它還能進行影像的預處理,以確保最佳結果。 IronOCR 是一個強大的 .NET 函式庫。 它可以從圖像的特定區域識別文本。 IronOCR 專注於準確性,在這方面的輸出結果確實令人驚豔。 開發人員無需任何額外的檔案和程式庫即可執行OCR。 總體而言,它是完美的函式庫。
Tesseract.NET SDK 也是一個適合 .NET 專案的良好程式庫。 它提供60種語言的OCR服務。 它基於Tesseract OCR專案。 它可以利用其功能集將掃描的圖像轉換為可搜索的PDF。 Tesseract.NET SDK 接受多種圖像格式進行輸入處理。 它在 .NET 專案中提供高層次的服務來支援其 OCR 功能。
IronOCR 和 Tesseract.NET SDK 都有定價方案。 但是,IronOCR 在定價計畫上提供更多的選擇,而且也比 Tesseract.NET SDK 更便宜。 這是因為IronOCR只接受一次性付款,而Tesseract.NET SDK則需要每月或每年的續訂。 所以,從長遠來看,即使 Tesseract.NET SDK 的起始價格低於 IronOCR,你最終仍必須支付更多。
通過分析整個場景並測試兩個庫的功能,我們可以得出結論,IronOCR 在處理模糊和旋轉的傾斜且略微有噪點的文檔時,在性能方面比 Tesseract.NET SDK 更好。 兩個庫的OCR功能都不錯,但IronOCR是一個更高級的庫,具有更好的功能,例如圖像預處理、去噪以及將圖片旋轉到原始位置。 Tesseract.NET SDK 支援多達 60 種語言,而 IronOCR 支援多達 127 種語言。 Tesseract.NET SDK 需要為不同語言添加額外的文件,這會增加程式的負擔。 此外,Tesseract.NET SDK 已經很久沒有更新了。
IronOCR 提供免費試用以進行生產測試。 它目前還提供一個絕佳的特別優惠,您可以以兩套的價格購買完整的五套Iron Software軟體套裝。 您可以在此獲取有關此優惠的更多信息 連結.