使用 IRONOCR

如何在 C# 教程中从发票获取文本

更新 2023年十二月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 支持 .NET5、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 窗口底部会出现一个新的控制台。在控制台中键入以下命令并按回车键。

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 因此,可以优化输入图像,以提高 OCR 识别过程的准确性。

输入

如何在 C# 中获取发票文本教程,图 4:用于演示从收据中提取特定数据的输入图像

用于演示从收据中提取特定数据的输入图像

输出

- Total 16.5

7.读取收据上的条形码

IronOCR 可用于读取收据上的条形码和文本。要使用 IronOCR 读取收据上的条形码,需要使用 条码阅读器 类与 读取条形码 方法。

下面举例说明如何使用 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 库,用于处理文档和图像。您可以 购买整套铁艺套房 只需两张 IronOCR 许可证.

在您的生产应用程序中试用 IronOCR,使用 免费试用.

< 前一页
如何在C#中OCR车牌(教程)
下一步 >
如何在C#中使用OCR从屏幕截图获取文本

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 2,319,721 查看许可证 >