使用 IRONOCR

如何從 C# 教程中獲取發票文本

已更新 2023年12月18日
分享:

1. IronOCR,一個光學字符識別 API

IronOCR是一個OCR函式庫,可用於從圖像中識別文字資料以進行信息提取,包括發票OCR。 它建立在 Tesseract OCR 引擎之上,被認為是截至目前可用於收據識別的最準確的 OCR 引擎之一。 IronOCR 可用於從不同類型的文件(包括 PNG、JPG、TIFF、JSON 格式和 PDF)中讀取關鍵信息的文本,並能識別多種語言的文本。

IronOCR 的其中一個關鍵功能或服務,在於其對收據 OCR 特別有用的原因是其能夠自動偵測文字方向,即使圖像已經旋轉或扭曲。 這對於收據上傳的準確文字識別和數據提取至關重要,因為收據通常有大量信息且可能被折疊或皺褶,導致文字偏斜。

2. IronOCR 功能

  • C# OCR 使用深度學習從圖片、掃描文件和 PDF 中掃描並識別文字。
  • .NET OCR 支援超過 127 種全球語言。
  • IronOCR可以從多種檔案格式的圖片中讀取文字,包括PNG、JPG、TIFF和PDF。
  • 文本,結構化資料, JSON 輸出,或者可搜尋的PDF檔可以從提取的信息中生成。
  • IronOCR 支援 .NET 5、6 和 7(核心、框架、標準).
  • IronOCR 根據文本區域將輸入分成不同的圖片。 它使用電腦視覺識別包含文字元素的區域。

3. 在 Visual Studio 中創建新項目

開啟 Visual Studio 軟體並進入檔案選單。 選擇「新專案」,然後選擇「主控台應用程式」。

在相應的文字框中輸入專案名稱並選擇路徑。 然後,點擊建立按鈕。 選擇所需的 .NET Framework,如下圖所示:

如何在 C# 教程中從發票獲取文本,圖 1:在 Visual Studio 中創建一個新項目

在 Visual Studio 中建立新專案

Visual Studio 專案現在將生成控制台應用程式的結構。 完成後,它將打開 Program.cs 文件,您可以在其中編寫和執行源代碼。

如何從發票中獲取文本的C#教程,圖2:由Visual Studio新建項目向導生成的program.cs文件

從 Visual Studio 新建專案精靈生成的 program.cs 檔案

4. 安裝IronOCR

在 Visual Studio 中,您可以輕鬆地將 IronOCR 整合到您的 C# 專案中。 IronOCR 提供多種方式與 C# .NET 專案整合。 在這裡,我們將討論其中之一:使用 NuGet Package Manager 安裝 IronOCR。

在 Visual Studio 中,前往 工具 > NuGet 套件管理員 > 套件管理員主控台

如何在C#教程中從發票中提取文字,圖3:Visual Studio NuGet套件管理員主控台

Visual Studio NuGet 套件管理器主控台

點擊後,Visual Studio 視窗底部會出現一個新的控制台。 在控制台中輸入以下命令並按下 Enter 鍵。

Install-Package IronOcr

IronOCR只需幾秒鐘即可安裝完成。

5. 使用 IronOCR 從收據中提取數據

IronOCR 是一個功能強大的光學字符識別庫,可以用來從收據中提取和獲取數據詳細資訊。使用 IronOCR,您可以拍攝收據的照片,並將其轉換為機器可讀文本,便於分析和處理,同時不會損害數據隱私。

以下是如何使用 IronOCR 從收據中提取文本的示例,並展示收據 OCR 的工作原理。

using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    OcrResult ocrResult = ocrTesseract.Read(ocrInput);
    string RecognizedText = ocrResult.Text;

    Console.WriteLine(RecognizedText);
}
using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    OcrResult ocrResult = ocrTesseract.Read(ocrInput);
    string RecognizedText = ocrResult.Text;

    Console.WriteLine(RecognizedText);
}
Imports IronOcr
Imports System

Private ocrTesseract As New IronTesseract()

Using ocrInput As New OcrInput("ocr.png")
	Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
	Dim RecognizedText As String = ocrResult.Text

	Console.WriteLine(RecognizedText)
End Using
VB   C#

請參考從影像讀取文字教學有關 IronOCR 如何使用 C# 電腦語言從圖像中讀取文本的更多詳細信息。

上述程式碼的輸出如下:

- LOGO SHOP
- LOREM IPSUM
- DOLOR SITAMET CONSECTETUR
- ADIPISCING ELIT
- 1 LOREM IPSUM $3.20
- 2 ORNARE MALESUADA $9.50
- 3 PORTA FERMENTUM $5.90
- 4 SODALES ARCU $6.00
- 5 ELEIFEND $9.00
- 6 SEMNISIMASSA $0.50
- 7 DUIS FAMES DIS $7.60
- 8 FACILISIRISUS $810
- TOTAL AMOUNT $49.80
- CASH $50.00

6. 使用 IronOCR 從收據圖像中特定資料萃取

作為一個強大的OCR庫,IronOCR允許開發者從掃描的收據中提取重要信息,包括稅額和商家名稱。

以下是範例,說明您如何使用IronOCR從收據圖像中提取總金額:

using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

ocrTesseract.Language = OcrLanguage.English;

// Code line to load the receipt image
using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    // Optimize the input image for OCR
    ocrInput.DeNoise(true);
    ocrInput.Contrast();
    ocrInput.EnhanceResolution();
    ocrInput.ToGrayScale();

    OcrResult ocrResult = ocrTesseract.Read(ocrInput);

    // Search for the total price in the OCR result
    var totalPrice = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
    Console.WriteLine("Total Price: " + totalPrice);
}
using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

ocrTesseract.Language = OcrLanguage.English;

// Code line to load the receipt image
using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    // Optimize the input image for OCR
    ocrInput.DeNoise(true);
    ocrInput.Contrast();
    ocrInput.EnhanceResolution();
    ocrInput.ToGrayScale();

    OcrResult ocrResult = ocrTesseract.Read(ocrInput);

    // Search for the total price in the OCR result
    var totalPrice = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
    Console.WriteLine("Total Price: " + totalPrice);
}
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System

Private ocrTesseract As New IronTesseract()

ocrTesseract.Language = OcrLanguage.English

' Code line to load the receipt image
Using ocrInput As New OcrInput("ocr.png")
	' Optimize the input image for OCR
	ocrInput.DeNoise(True)
	ocrInput.Contrast()
	ocrInput.EnhanceResolution()
	ocrInput.ToGrayScale()

	Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)

	' Search for the total price in the OCR result
	Dim totalPrice = If(ocrResult.Text.Contains("Total:"), ocrResult.Text.Split("Total:")(1).Split(vbLf)(0), "")
	Console.WriteLine("Total Price: " & totalPrice)
End Using
VB   C#

多虧了由OcrInput在 class 中,可以優化輸入圖像以提高 OCR 過程的準確性。

輸入

如何在C#教學中從發票獲取文字,圖4:用於展示從收據中提取特定數據的輸入圖像

用於示範從收據中提取特定資料的輸入圖片

輸出

- Total 16.5

7. 讀取收據上的條碼

IronOCR 可用於讀取收據上的條碼以及文字。 要使用 IronOCR 讀取收據上的條碼,您需要使用BarcodeReader類別組合中與ReadBarCodes方法。

以下是一個示例,說明如何使用IronOCR讀取收據圖像上的條碼。

using IronOcr;
using System;

var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using (var ocrInput = new OcrInput("b.png"))
{
    var ocrResult = ocrTesseract.Read(ocrInput);
    foreach (var barcode in ocrResult.Barcodes)
    {
        Console.WriteLine(barcode.Value);
    }
}
using IronOcr;
using System;

var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using (var ocrInput = new OcrInput("b.png"))
{
    var ocrResult = ocrTesseract.Read(ocrInput);
    foreach (var barcode in ocrResult.Barcodes)
    {
        Console.WriteLine(barcode.Value);
    }
}
Imports IronOcr
Imports System

Private ocrTesseract = New IronTesseract()
ocrTesseract.Configuration.ReadBarCodes = True
Using ocrInput As New OcrInput("b.png")
	Dim ocrResult = ocrTesseract.Read(ocrInput)
	For Each barcode In ocrResult.Barcodes
		Console.WriteLine(barcode.Value)
	Next barcode
End Using
VB   C#

輸入圖片

如何從發票中獲取文字的 C# 教程,圖 4:讀取條碼的輸入

條碼讀取輸入

輸出文字

如何在C#教程中從發票中獲取文字,圖5:處理條碼圖像的結果

條碼圖像處理的結果

8. 結論

上面的文章解釋了在 C# 專案中安裝和使用 IronOCR 從收據中提取資料的過程,並提供了示例代碼片段。

請閱讀教學指南從圖像中讀取文本.

IronOCR 是 Iron Suite,包含五個不同的 .NET 庫,用於操作文檔和圖像。 您可以購買整個Iron Suite只需兩個的價格IronOCR 授權.

在您的生產應用程式中嘗試使用 IronOCR,享受免費試用.

< 上一頁
如何在 C# 中進行車牌 OCR(教程)
下一個 >
如何在C#中從截圖中獲取文字OCR

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

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