使用 IRONOCR

OCR 收據數據提取(逐步教程)

已更新 2024年1月28日
分享:

使用 IronOCR 的收據光學字符識別(OCR)對企業和個人來說都是一個變革。這個過程允許您從實體收據中提取重要信息,並將其轉換為數字數據。本文將引導您一步步了解如何使用 IronOCR 最大限度地利用收據。

OCR簡介

光學字符識別 (OCR) 是一種技術,讓電腦可以從圖像或掃描的文件中閱讀和理解文本。通過將手寫或打印的文本轉換為機器可讀文本,OCR 使您能夠儲存、處理和分析物理文件中包含的信息。

2. IronOCR 介紹

IronOCR 是OCR (光學字符識別) 適用於 C# 和 .NET 開發人員的庫。它使開發人員能夠 從圖像中提取文本, PDFs,和其他文件格式。IronOCR 是基於流行的 Tesseract OCR 引擎 並增加了其他功能,使其成為各種應用的理想選擇,包括收據OCR。

3. 使用 IronOCR 進行數據提取的好處

以下是使用 IronOCR 進行 OCR 收據數據提取的一些主要好處:

高精度: IronOCR 提供優異的 OCR API 精度,確保從收據和其他文件中可靠的數據提取。

多語言支持IronOCR 支援超過125種語言,使其適用於全球應用。

易於使用:該庫提供簡單直觀的API,讓開發人員能輕鬆在他們的專案中實現OCR功能。

可自訂:IronOCR 提供各種選項 用於微調OCR結果,確保針對您的特定使用案例進行最佳數據提取。

4. IronOCR 的工作原理

IronOCR 採用了先進的 OCR 演算法來識別和提取圖像和文件中的文本。它能處理多種格式,包括 JPEG、PNG、TIFF 和 PDF。該庫會讀取輸入檔案,識別其中的文本,並將提取的文本輸出為字串,然後可以根據需要進行處理或存儲。IronOCR 也使用 計算機視覺 為獲得最佳結果。

5. 使用 IronOCR 的先決條件

要開始使用 IronOCR 進行收據資料提取,您首先需要安裝 IronOCR 套件。這可以通過 NuGet,.NET 的套件管理器,輕鬆完成。只需在 Visual Studio 中打開您的項目,然後按照以下步驟操作:

  1. 在解決方案管理器中右鍵單擊您的項目,選擇「管理 NuGet 套件」。

  2. 在 NuGet 套件管理器窗口中,搜索「IronOCR」。

  3. 選擇 IronOcr 套件並點擊「安裝」。

    OCR 收據數據提取 (逐步教程),圖 1: 在 NuGet 包管理器 UI 中搜索 IronOCR 包

    在 NuGet 套件管理器 UI 中搜尋 IronOCR 套件

6. 準備收據圖像

在從收據中提取數據之前,您將希望確保收據圖像質量高,以提高收據 OCR API 過程的準確性。以下是一些拍攝良好收據圖像的提示:

  1. 使用掃描文件。您可以使用高解析度掃描儀掃描收據。
  2. 確保收據光照充足,沒有陰影。
  3. 將收據上的任何折痕或摺疊拉直,以免關鍵信息被遮擋。
  4. 確保收據上的文字清晰且未晕開,以改善收據處理效果。

    OCR 收據數據提取(逐步教程),圖 2:範例收據圖像以提取文字

    提取文字的範例收據圖像

7. 對收據圖像執行光學字符識別 (OCR)

安裝 IronOCR 並準備好您的收據圖像後,是時候執行 OCR 過程了。在您的 .NET 應用程式中,使用以下代碼片段:

using IronOcr;

var ocr = new IronTesseract();
using (var ocrInput = new OcrInput(@"path/to/your/receipt/image.png"))
{
    var result = ocr.Read(ocrInput);
    Console.WriteLine(result.Text);
}
using IronOcr;

var ocr = new IronTesseract();
using (var ocrInput = new OcrInput(@"path/to/your/receipt/image.png"))
{
    var result = ocr.Read(ocrInput);
    Console.WriteLine(result.Text);
}
Imports IronOcr

Private ocr = New IronTesseract()
Using ocrInput As New OcrInput("path/to/your/receipt/image.png")
	Dim result = ocr.Read(ocrInput)
	Console.WriteLine(result.Text)
End Using
VB   C#

代碼說明

using IronOcr;
using IronOcr;
Imports IronOcr
VB   C#

這行將 IronOCR 函式庫導入您的 .NET 應用程式,讓您可以存取其功能。

var ocr = new IronTesseract();
var ocr = new IronTesseract();
Dim ocr = New IronTesseract()
VB   C#

此行會創建一個新實例的 IronTesseract 負責 IronOCR 中 OCR 操作的主類別。

using (var ocrInput = new OcrInput(@"path/to/your/receipt/image.png"))
using (var ocrInput = new OcrInput(@"path/to/your/receipt/image.png"))
Using ocrInput As New OcrInput("path/to/your/receipt/image.png")
VB   C#

在這裡,一個新的实例 OcrInput class 是表示 OCR 過程輸入圖像的類。 @"path/to/your/receipt/image.png" 應替換為您收據圖像的實際文件路徑。using 聲明確保在完成 OCR 操作後,分配給 OcrInput 實例的資源會被適當釋放。

var result = Ocr.Read(ocrInput);
var result = Ocr.Read(ocrInput);
Dim result = Ocr.Read(ocrInput)
VB   C#

這行呼叫 讀取 IronTesseract 實例的方法,將 OcrInput 對象作為參數傳遞。Read 方法處理輸入圖像並執行 OCR 操作,從圖像中識別和提取文本。它將開始收據識別過程。

Console.WriteLine(Result.Text);
Console.WriteLine(Result.Text);
Console.WriteLine(Result.Text)
VB   C#

最後,這行將提取的文本輸出到控制台。result 對象是一個 OcrResult 類別,包含識別出的文本及有關 OCR 過程的附加信息。可以通過訪問 result 對象的 Text 屬性來顯示提取的文本。

OCR 收據數據提取(分步教程),圖 3:提取文字的輸出

提取文本的輸出

微調 OCR 結果

IronOCR 提供幾種選項來提高 OCR 的準確性和性能。這些選項包括圖像的預處理、調整 OCR 引擎設置以及選擇適當的語言以用於您的收據。

圖像預處理

您可以通過應用圖像預處理技術來增強光學字符識別(OCR)的結果,例如:

  1. 糾偏:校正圖像中的旋轉或傾斜。
  2. 去噪:通過去除圖片中的噪聲來提高文本的可讀性。

以下是如何應用這些技術的例子:

using IronOcr;

var ocr = new IronTesseract();
using (var input = new OcrInput(@"path/to/your/receipt/image.png"))
{
    input.DeNoise();
    input.DeSkew();

    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
using IronOcr;

var ocr = new IronTesseract();
using (var input = new OcrInput(@"path/to/your/receipt/image.png"))
{
    input.DeNoise();
    input.DeSkew();

    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
Imports IronOcr

Private ocr = New IronTesseract()
Using input = New OcrInput("path/to/your/receipt/image.png")
	input.DeNoise()
	input.DeSkew()

	Dim result = ocr.Read(input)
	Console.WriteLine(result.Text)
End Using
VB   C#

語言選擇

IronOCR 支援超過 125 種語言,選擇正確的語言可以顯著提高 OCR 的結果。要指定語言,請將以下行添加到您的代碼中:

ocr.Configuration.Language = OcrLanguage.English;
ocr.Configuration.Language = OcrLanguage.English;
ocr.Configuration.Language = OcrLanguage.English
VB   C#

從 OCR 結果中提取數據

在 OCR 過程完成後,是時候從文本中提取特定信息了。根據您的需求,您可能希望提取以下數據:

  1. 商店名稱和地址。

  2. 購買日期和時間。

  3. 商品名稱和價格。

  4. 小計、稅金和總額。

要做到這一點,您可以在 .NET 應用程序中使用正則表達式或字符串操作技術。例如,您可以使用以下代碼片段從 OCR 結果中提取日期:

using System.Text.RegularExpressions;

//Rest of the Code

var DatePattern = @"\d{1,2}\/\d{1,2}\/\d{2,4}";
var DateMatch = Regex.Match(Result.Text, DatePattern);
if (DateMatch.Success)
{
    var DateValue = DateTime.Parse(DateMatch.Value);
    Console.WriteLine("Date: " + DateValue);
}
using System.Text.RegularExpressions;

//Rest of the Code

var DatePattern = @"\d{1,2}\/\d{1,2}\/\d{2,4}";
var DateMatch = Regex.Match(Result.Text, DatePattern);
if (DateMatch.Success)
{
    var DateValue = DateTime.Parse(DateMatch.Value);
    Console.WriteLine("Date: " + DateValue);
}
Imports System.Text.RegularExpressions

'Rest of the Code

Private DatePattern = "\d{1,2}\/\d{1,2}\/\d{2,4}"
Private DateMatch = Regex.Match(Result.Text, DatePattern)
If DateMatch.Success Then
	Dim DateValue = DateTime.Parse(DateMatch.Value)
	Console.WriteLine("Date: " & DateValue)
End If
VB   C#

您可以為其他需要從收據中提取的信息創建類似的模式。

儲存和分析提取數據

既然您已經從收據中提取了相關信息,您可以將其存儲在資料庫中,進行分析,或導出到其他文件格式,如 CSV、JSON 或 Excel。

結論

總之,使用 IronOCR 的收據光學字符識別 (Receipt OCR) 是一個創新且高效的解決方案,用於數字化和管理您的財務數據;使用 IronOCR,您可以取代手動數據輸入。通過遵循這個逐步指南,您可以利用 IronOCR 的強大功能來改善您的費用跟蹤和數據分析。最棒的是,IronOCR 提供了一個 免費試用,讓您在沒有任何承諾的情況下體驗其功能。

試用期結束後,如果您決定繼續使用 IronOCR,許可證從$749開始,為您提供一種成本效益的方式,在您的應用程式中利用 OCR 技術的優勢。

< 上一頁
如何在 Blazor 中從圖像讀取文本
下一個 >
使用計算機視覺進行OCR(範例教程)

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 2,433,305 查看許可證 >