使用 IRONOCR

OCR 收据数据提取(逐步教程)

更新 2024年一月28日
分享:

使用 IronOCR 进行收据 OCR 可改变企业和个人的游戏规则。通过该程序,您可以从实物收据中提取重要信息,并将其转换为数字数据。 本文将带您逐步了解如何使用 IronOCR 从收据中获得最大收益。

OCR 快速入门

光学字符识别或 OCR 是一种允许计算机从图像或扫描文件中读取和理解文本的技术。 通过将手写或打印文本转换为机器可读文本,OCR 使您能够存储、处理和分析物理文档中包含的信息。

2.IronOCR 简介

IronOCR是一个 OCR(光学字符识别)针对 C# 和 .NET 开发人员的库。 它使开发人员能够从图像中提取文本, PDF 文件此外,还需提供 .NET 、Java、Python 或 Node js 等文档格式。 IronOCR 基于广受欢迎的Tesseract OCR 引擎并增加了其他功能,使其成为各种应用(包括收据 OCR)的理想选择。

3.使用 IronOCR 进行数据提取的好处

以下是使用 IronOCR 进行 OCR 收据数据提取的一些主要优势:

高准确性:IronOCR 提供出色的 OCR API 准确性,确保从收据和其他文档中提取可靠的数据。

多语种支持:IronOCR 支持超过 125 种语言,适合全球应用。

易于使用:该库提供了简单直观的应用程序接口,使开发人员能够轻松地在其项目中实现 OCR 功能。

可定制:IronOCR提供各种选项用于微调 OCR 结果,确保针对具体使用情况提取最佳数据。

4.IronOCR 如何工作

IronOCR 采用先进的 OCR 算法来识别和提取图像和文档中的文本。 它可以处理各种格式,包括 JPEG、PNG、TIFF 和 PDF。 该库可读取输入文件,识别其中的文本,并将提取的文本输出为字符串,然后根据需要进行处理或存储。 IronOCR 还使用了计算机视觉以获得最佳效果。

5.使用 IronOCR 的前提条件

要开始使用 IronOCR 进行收据数据提取,首先需要安装 IronOCR 软件包。 这可以通过 .NET 的软件包管理器 NuGet 轻松完成。 只需在 Visual Studio 中打开您的项目,然后按照以下步骤操作即可:

  1. 在解决方案资源管理器中右键单击您的项目,然后选择 "管理 NuGet 包"。

  2. 在 NuGet 包管理器窗口中,搜索 "IronOCR"。

  3. 选择 "IronOcr "软件包并点击 "安装"。

    OCR 收据数据提取(逐步教程),图 1:在 NuGet 软件包管理器用户界面中搜索 IronOcr 软件包

    在 NuGet 软件包管理器用户界面中搜索 "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#

这一行将创建一个新的钢铁魔方类,它是 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创建了一个类,表示 OCR 过程的输入图像。 @"path/to/your/receipt/image.png "应替换为收据图片的实际文件路径。 使用 "语句可确保在 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#

最后,这一行将提取的文本输出到控制台。 结果 "对象是OcrResult此外,我们还将提供一个 "OCR 类",其中包含识别出的文本和有关 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 进行收据 OCR 是实现财务数据数字化和管理的创新而高效的解决方案; 使用 IronOCR,您可以取代人工数据录入。 按照本指南的步骤,您就可以利用 IronOCR 的强大功能来改进您的费用跟踪和数据分析。 最重要的是,IronOCR 提供了一个免费试用此外,您还可以在不做任何承诺的情况下体验这些工具的功能。

试用期结束后,如果您决定继续使用 IronOCR,许可证起价为 $749,为您在应用程序中利用 OCR 技术的优势提供了一种经济高效的方式。

< 前一页
如何在Blazor中从图像读取文本
下一步 >
使用计算机视觉的OCR(示范教程)