使用 IRONOCR

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

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

1. IronOCR,光學字符識別 API

IronOCR 是一個光學字符識別(OCR)庫,可以用來從影像中識別文字數據以進行資訊提取,包括收據OCR。它建立在被認為是迄今為止最準確的OCR引擎之一的Tesseract 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 套件管理器安裝 IronOCR。

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

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

Visual Studio 的 NuGet 套件管理控制台

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

Install-Package IronOcr

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

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

IronOCR是一個強大的OCR庫,可以用來從收據中提取和訪問詳細的數據。使用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 過程的準確性。

Input

如何在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.10 剛剛發布

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