在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
光學字元識別(光學字符識別)是一種將照片、手寫文件、印刷文本和掃描文件轉換為機器可讀文本的技術。 這是一種將印刷文本數位化的常見方法,使其可以進行電子編輯、搜尋、更緊湊地存儲、在線顯示,以及用於機器過程,例如認知計算、機器翻譯等。(提取)文本到電子表格轉換。 它廣泛用於從打印的紙質數據記錄中進行數據輸入——無論是護照文件、發票、銀行對賬單、電腦收據、名片、郵件、靜態數據的打印輸出,還是任何合適的文件。 模式識別、人工智慧和计算机视觉都属于OCR研究的范畴。
在本文中,我們將比較兩個常用的庫和應用程式,用於對 PDF 文件和圖像進行 OCR。 這些是:
ABBYY FineReader PDF 是一款光學字符識別(光學字符識別)由ABBYY創建的應用程式。 它允許我們轉換影像文件(圖片,掃描,PDF 文件)以及螢幕截圖可以轉換為可編輯的檔案格式,例如 Microsoft Word、Microsoft Excel、Microsoft PowerPoint、豐富文字格式、HTML、PDF/A、可搜尋的 PDF、CSV 和文字。(純文本).
ABBYY FineReader 是一款桌面應用程式,適用於 Windows、Linux 和 macOS。 它還允許創建可編輯的 pdf 文件格式。 我們也可以像使用 Adobe Acrobat 一樣閱讀 PDF。 ABBYY FineReader 將掃描文件整合到數位化工作流程中。
以簡單高效的方式管理和完成文件,以節省時間和精力。 以同樣有條不紊的方法處理任何文件,無論是數位創建的還是從紙質轉換而來的。 您可以直接修改 PDF 的文本、表格和全部版面佈局,而無需先進行轉換。
ABBYY FineReader PDF 可以從超過 25 種不同的文件格式建立 PDF,由紙張文件直接建立,或是從幾乎任何應用程式列印至 PDF 列印機。 PDF/A-1到PDF/A-3支援長期保存,PDF/UA確保內容在使用螢幕閱讀器等輔助軟體時可供存取。 它還使專業人士能夠在數位工作環境中最大化效率。
使用 ABBYY FineReader 創建和更新您自己的互動式 PDF 表單,以成功收集信息和標準化文檔。 透過結合各種類型的互動欄位來創建表單,設定動作,編輯現有的 PDF 表單,或將表單元素添加到傳統 PDF。
ABBYY FineReader 可以立即將紙質文件、掃描件和掃描的 PDF 轉換為可搜索的 PDF,讓您能夠從數位檔案庫中檢索文件並存取其中的資訊。 FineReader PDF 支援所有依從性級別和 PDF/A 格式的變體,這是長期存檔的行業標準,從 PDF/A-1 到 PDF/A-3。
ABBYY 最新的基於人工智慧的 OCR 技術 FineReader PDF,使得在相同的工作流程中對各類文件進行數位化、檢索、編輯、保護、共享和協作變得更加容易。 FineReader 也包含文件比較功能,這有助於我們比較原始文件,以及轉換的 PDF 和圖像文件。
IronOCR 提供軟體給使用 IronOCR for .NET 的工程師,以在 .NET 應用程式和網站中從照片和 PDF 讀取文字內容。 它掃描照片中的文字和條碼,並支持多種全球語言; 然後它可以提供作為純文字或結構化數據的輸出。 Iron Software 的 OCR 函式庫可用於 MVC、Web、控制台和桌面 .NET 應用程式。 對於商業部署,許可證由開發團隊直接協助提供。
打開 Visual Studio 軟體,然後進入「檔案」選單。 選擇「新專案」,然後選擇「控制台應用程式」。
在相應的文字框中輸入專案名稱並選擇文件路徑。 然後,單擊創建按鈕並選擇所需的 .NET Framework,如下圖所示。
Visual Studio 專案現在將為所選的應用程式生成結構,如果您選擇了控制台、Windows 和 Web 應用程式,現在會打開 program.cs 檔案,您可以在其中輸入代碼並建置/運行應用程式。
接下來,我們可以添加庫來測試代碼。
我們可以在這裡下載 ABBYY FineReader。
上圖顯示您可以根據需求下載兩個版本,個人版和商業版。 選擇「下載免費試用」選項。 它將重定向到如下圖所示的表單:
我們需要填寫表格以獲取EXE文件位置。 點擊下載選項以下載文件。
一旦檔案下載完成,我們可以雙擊 EXE 檔案以開始安裝。 完成後,它將顯示一個彈出消息,現在已可使用。
IronOCR 程式庫可以透過四種方式下載和安裝。
這些是:
Visual Studio 軟體提供 NuGet 套件管理器選項,以直接將套件安裝至解決方案。 以下截圖顯示如何打開 NuGet Package Manager。
它提供了一個搜索框,用於顯示來自NuGet網站的套件列表。在套件管理器中,我們需要搜索關鍵字 IronOCR,如下圖所示:
從上面的圖片中,我們將獲取相關搜尋項目的列表。 我們需要選擇所需選項將套件安裝到解決方案中。
在 Visual Studio 中,前往工具-> NuGet 套件管理器-> 套件管理器主控台
在封裝管理員主控台標籤中輸入以下行:
Install-Package IronOcr
接下來,該套件將會在當前專案中下載/安裝並可供使用。
第三種方式是直接從網站下載 NuGet 套件。
點擊 連結 在此從網站直接下載最新套件。下載完成後,請按照以下步驟將套件添加到專案中。
IronOCR 和 Abbyy Finereader 都具有將圖像轉換為文本搜索的 OCR 技術。
接下來,開啟 ABBYY FineReader PDF 應用程式,該應用程式將顯示多個選項,如下圖所示。
接下來,從 OCR 編輯器選項中選擇 "Open" 選項。 這將提示選擇圖像檔案的選項:
選擇文件後,它會自動開始將圖像掃描成可編輯的文字,然後在窗口中顯示結果,如下面的螢幕截圖所示:
上面的圖片顯示了來源圖片已轉換為可編輯的文字。 然而,結果不是很準確。 ABBYY FineReader PDF 應用程式無法識別某些數字。這在比較視窗中顯而易見——左側是原始圖像,右側是 OCR 轉換的文本。
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage(@"3.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Console.ReadKey();
}
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage(@"3.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Console.ReadKey();
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
Input.AddImage("3.png")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
Console.ReadKey()
End Using
Tesseract 5 API,如上所示,可讓我們將圖像檔案轉換為文本。 我們正在上述代碼行中為 Iron Tesseract 建立一個物件。 我們還在建立一個 OcrInput 對象,這將允許我們添加一或多個圖片文件。 在使用 OcrInput 物件方法 add 時,我們可能需要在程式碼內提供可用的圖片路徑。 可以添加任意數量的圖片。 在我們之前構建的 IronTesseract 對象中的「Read」功能,可以通過解析圖像文件並將結果提取到 OCR 結果中來獲取圖像。 它能從照片中提取文本並將其轉換為字串。
我們也可以使用 Tesseract 來添加多幀圖像。 「AddMultiFrameTiff」是此操作的另一種方法。 Tesseract 庫讀取圖像中的每一幀,每一幀都被視為一個獨立的頁面。 該過程將讀取圖像的第一幀,然後繼續讀取下一幀,依此類推,直到掃描完所有圖像幀為止。 此方法僅支持 TIFF 圖像格式。
上圖是 IronOCR 的結果輸出,準確地顯示數據已正確轉換為可編輯的文本。
IronOCR 和 ABBYY FineReader PDF 有助於將 PDF 文件轉換為可編輯的文本。 ABBYY FineReader PDF 提供多種選項給用戶,例如保存頁面、編輯圖像、識別頁面等。它還提供保存選項,如 txt、文件、HTML 格式等。IronOCR 也允許我們將轉換後的 OCR 文件保存為 HTML、txt、pdf 等格式。
打開 ABBYY FineReader PDF 軟體。 這將開啟一個類似下圖的頁面,提供多種選項。
接下來,從 OCR 編輯器選項中選擇 "Open" 選項。 這將提示選擇圖像/PDF的選項。 我們可以選擇一個 PDF 或圖片,或者我們可以選擇兩者。
選擇檔案後,點擊確定按鈕。 它將自動開始將圖像掃描成可編輯的文本,並在如下圖所示的窗口中顯示結果。
上圖顯示了將來源PDF轉換為可編輯文本的過程。 然而,結果不是完全準確。 ABBYY FineReader PDF 應用程式無法識別某些數字。 這在比較窗口中清楚地顯示出來——左側是來源 PDF,右側是 OCR 轉換的文本。
我們也可以使用OCRInput來管理PDF檔案。 每頁文件將由Iron Tesseract類別讀取。 文本將從頁面中提取。 我們也可以使用名為「AddPdf」的第二個功能來開啟受保護的文件,這使我們能夠將 PDF 添加到我們的文件列表中。(如果受到保護的密碼). 以下程式碼演示了如何打開受密碼保護的 PDF 文檔:
var Ocr = new IronTesseract(); // nothing to configure
using (var Input = new OcrInput())
{
Input.AddPdf("example.pdf", "password");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract(); // nothing to configure
using (var Input = new OcrInput())
{
Input.AddPdf("example.pdf", "password");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract() ' nothing to configure
Using Input = New OcrInput()
Input.AddPdf("example.pdf", "password")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
Iron Tesseract 還提供以下方法:
新增Pdf頁面
我們可以使用 "Addpdfpage" 來閱讀和提取 PDF 文件中的單個頁面內容。只需指定我們想提取文字的頁碼即可。 "AddPdfPage" 允許我們從指定的多個頁面中提取文本。 在 IEnumerable
IEnumerable<int> numbers = new List<int> {2,8,10 };
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
//single pageInput.AddPdfPage("example.pdf",10);
//Multiple pageInput.AddPdfPages("example.pdf", numbers);
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Result.SaveAsTextFile("ocrtext.txt");
}
IEnumerable<int> numbers = new List<int> {2,8,10 };
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
//single pageInput.AddPdfPage("example.pdf",10);
//Multiple pageInput.AddPdfPages("example.pdf", numbers);
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Result.SaveAsTextFile("ocrtext.txt");
}
Dim numbers As IEnumerable(Of Integer) = New List(Of Integer) From {2, 8, 10}
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
'single pageInput.AddPdfPage("example.pdf",10);
'Multiple pageInput.AddPdfPages("example.pdf", numbers);
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
Result.SaveAsTextFile("ocrtext.txt")
End Using
使用 SaveAsTextFile 函數,我們可以將結果儲存為文字檔,這允許我們將檔案下載到輸出目錄路徑。 此外,我們可以使用 SaveAsHocrFile 將文件保存為 HTML 文件。
FineReader 具有一些額外的選項,例如:繪製文字區域、繪製照片區域、繪製表格區域、繪製識別區域,等等。這些功能可幫助用戶提高 OCR 的性能。 此外,除了執行 OCR,該應用程式還允許使用者完成合併 PDF、分割 PDF、編輯 PDF 等操作。
IronOCR具有獨特的功能,可以從掃描文件中讀取條碼和QR碼。 以下代碼顯示了如何從給定的圖像或文件中讀取條碼。
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.ReadBarCodes = true;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage("barcode.gif");
var Result = Ocr.Read(Input);
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
}
}
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.ReadBarCodes = true;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage("barcode.gif");
var Result = Ocr.Read(Input);
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
}
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.ReadBarCodes = True
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
Input.AddImage("barcode.gif")
Dim Result = Ocr.Read(Input)
For Each Barcode In Result.Barcodes
Console.WriteLine(Barcode.Value)
Next Barcode
End Using
以上是用於從給定的圖像或 PDF 文件中讀取條形碼的程式碼。 它能從一個頁面/圖片中讀取多個條碼。 要讀取條碼,IronOCR 有一個獨特的設定 Ocr.Configuration.ReadBarCodes,可以幫助讀取條碼; 預設值設為 false。
讀取輸入後,數據將被保存到名為 OCRResult 的對象中; 這個有一個名為 Barcodes 的屬性,將所有可用的條碼數據彙集成一個列表。使用 for-each 迴圈,我們可以逐一獲取所有條碼的詳細信息。 此外,它將掃描條碼並讀取條碼的值——兩個操作在一個過程中完成。!
此外,也支持线程选项,这意味着我们可以同时执行多个OCR处理。IronOCR还能够识别指定区域中的特定区域。
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
Input.Add("document.png", ContentArea);
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
Input.Add("document.png", ContentArea);
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
Dim ContentArea = New System.Drawing.Rectangle() With {
.X = 215,
.Y = 1250,
.Height = 280,
.Width = 1335
}
Input.Add("document.png", ContentArea)
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
以上是用於對特定區域執行 OCR 的範例代碼。 我們只需指定圖像或 PDF 上的矩形區域—IronOCR 中的 Tesseract 引擎即可實現文本識別。
在 .NET Framework 環境中使用 IronOCR 時,Tesseract 簡單易用。 它以多種方式支援照片和 PDF 文件。 它還提供了一些設置來提高 Tesseract OCR 庫的性能。 支援多種語言,並且可以在單次操作中處理多個語言。 如需了解更多有關 Tesseract OCR 的資訊,請造訪他們的網站。
ABBYY FineReader PDF 是一款軟體應用程式,它利用人工智慧引擎來識別圖像/PDF 文件。 它還提供各種設置以提高 OCR 流程的性能。 此外,它提供了選擇多種語言的選項。 ABBYY FineReader PDF 在頁面轉換的使用上確實有一些限制。 不同的作業系統有不同的價格。 若要了解有關 ABBYY FineReader PDF 價格詳情,請按一下 這裡.
IronOCR 比 ABBYY FineReader PDF 更好。 比較結果顯示,FineReader 無法識別部分低質量圖像,同時也無法識別圖像中的某些字符,並將其報告為未知。 另一方面,IronOCR顯示完整且準確的結果。 它還允許我們識別條碼數據並從圖像中讀取條碼的值。 IronOCR 套件提供終身授權,且無後續費用。 IronOCR 套件以單一價格支持多個平台。若想了解更多 IronOCR 價格詳情,請點擊 這裡.