使用 IRONOCR

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

更新 2023年十二月18日
分享:

1.IronOCR,光学字符识别 API

IronOCR是一个 OCR 库,可用于识别图像中的文本数据以提取信息,包括收据 OCR。 它基于 Tesseract OCR 引擎构建,该引擎被认为是迄今为止用于收据识别的最准确的 OCR 引擎之一。 IronOCR 可用于读取不同文档类型(包括 PNG、JPG、TIFF、JSON 格式和 PDF)中包含关键信息的文本,并能识别多种语言的文本。

IronOCR 的一个关键功能或服务使其在收据 OCR 方面特别有用,这就是它能够自动检测文本方向即使图像已被旋转或歪斜,也能准确无误地翻译出.NET、Java、Python 或 Node js 的名称。 这对于准确识别上传收据上的文本和提取数据至关重要,因为收据通常包含大量信息,而且可能被折叠或揉皱,导致文本歪斜。

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.阅读收据上的 BarCode

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

下面是一个如何使用 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:读取条形码的输入

用于读取 BarCode 的输入

输出文本

如何在 C# 中获取发票文本教程,图 5:处理条形码图像的结果

处理条形码图像的结果

8.结论

上述文章介绍了在 C# 项目中安装和使用 IronOCR 从收据中提取数据的过程,并提供了示例代码片段。

请阅读从图像中阅读文本.

IronOCR 属于Iron Suite该译文包括五个不同的 .NET 库,用于处理文档和图像。 你可以购买整套铁艺套房只需两张IronOCR 许可证.

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

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

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

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