使用 IRONOCR

收据扫描API(开发者教程)

更新 2024年二月11日
分享:

收据扫描 API 利用先进的 OCR 技术从收据中提取关键数据。它消除了人工错误,提高了工作效率,从而简化了数据录入流程。该应用程序接口用途广泛且准确,支持多种语言、货币和格式。通过自动解析收据,企业可以深入了解消费模式,并做出数据驱动的决策。本文将演示如何使用 C# OCR 库、 IronOCR从收据中提取重要信息。

IronOCR

IronOCR 是 Iron Software 开发的多功能 OCR 库和 API,为开发人员从扫描文档、图像和 PDF 等各种来源中提取文本提供了强大的解决方案。IronOCR 采用先进的 OCR 算法、计算机视觉和机器学习模型,即使在具有挑战性的情况下,也能确保高准确性和可靠性。该库支持多种语言和字体样式,适合全球应用。通过将具有机器学习模型功能的 IronOCR 纳入其应用程序,开发人员可以轻松实现数据录入、文本分析和其他任务的自动化,从而提高生产力和效率。

利用 IronOCR,开发人员可以毫不费力地从各种来源获取文本,包括文档、照片、屏幕截图,甚至是作为 JSON 响应的实时摄像头馈送。通过利用复杂的算法和机器学习模型,IronOCR 分析图像数据在这种情况下,计算机可以识别单个字符,并将其转换为机器可读的文本。提取的文本可用于各种用途,如数据录入、信息检索、文本分析和人工任务自动化。

先决条件

在开始使用 IronOCR 之前,需要具备一些先决条件。这些先决条件包括

1.确保在计算机上设置了合适的开发环境。这通常包括集成开发环境 (IDE) 如安装了 Visual Studio。

2.掌握 C# 编程语言的基本知识非常重要。这将使您能够有效地理解和修改文章中提供的代码示例。

3.您需要在项目中安装 IronOCR 库。这可以通过使用 Visual Studio 中的 NuGet 包管理器或命令行界面来实现。

确保满足这些先决条件后,您就可以开始使用 IronOCR 了。

创建一个新的 Visual Studio 项目

要开始使用 IronOCR,第一步是创建一个新的 Visual Studio 项目。

打开 Visual Studio,转到 "文件",然后悬停在 "新建 "上,点击 "项目"。

收据扫描 API(开发人员教程),图 1:新项目图像

新项目形象

在新窗口中,选择 "控制台应用程序",然后点击 "下一步"。

收据扫描 API(开发人员教程),图 2:控制台应用程序

控制台应用程序

将出现一个新窗口。写入新项目的名称和位置,然后点击 "下一步"。

收据扫描 API(开发人员教程),图 3:项目配置

项目配置

最后,提供目标框架并点击创建。

收据扫描 API(开发人员教程),图 4:目标框架

目标框架

现在新的 Visual Studio 项目已经创建,让我们安装 IronOCR。

安装 IronOCR

下载和安装 IronOCR 库有多种方法。以下是两种最简单的方法。

1.使用 Visual Studio NuGet 软件包管理器

2.使用 Visual Studio 命令行

使用 Visual Studio NuGet 软件包管理器

IronOCR 可通过 Visual Studio NuGet 包管理器包含在 C# 项目中。

选择工具 > NuGet 包管理器 > 管理解决方案的 NuGet 包,导航至 NuGet 包管理器图形用户界面。

收据扫描 API(开发人员教程),图 5:NuGet 软件包管理器

NuGet软件包管理器

之后会出现一个新窗口。搜索 IronOCR 并将软件包安装到项目中。

收据扫描 API(开发人员教程),图 6:IronOCR

IronOCR

还可以使用上述相同方法安装 IronOCR 的其他语言包。

使用 Visual Studio 命令行

1.在 Visual Studio 中,转到 工具 > NuGet 软件包管理器 > 软件包管理器控制台

2.在 "软件包管理器控制台 "选项卡中输入以下一行:

    :ProductInstall

收据扫描 API(开发人员教程),图 7:软件包管理器控制台

**软件包管理器控制台**

现在,软件包将下载/安装到当前项目中,并可随时使用。

使用收据 OCR API 提取数据

使用 IronOCR 从收据图像中提取数据并将其保存为结构化数据对大多数开发人员来说都是救命稻草。使用 IronOCR,只需几行代码就能实现这一目标。使用该工具,您可以提取不同文档类型的行项目、定价、税额、总金额等。

using IronOcr;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

var ocr = new IronTesseract();
using (var input = new OcrInput(@"r2.png"))
{
    var result = ocr.Read(input);
    var descriptionPattern = @"\[([A-Z0-9_]+)]\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)";
    var pricePattern = @"\$\d+(\.\d{2})?";
    var descriptions = new List<string>();
    var unitPrices = new List<decimal>();
    var taxes = new List<decimal>();
    var amounts = new List<decimal>();
    var lines = result.Text.Split('\n');
    var descriptionMatch = Regex.Match(lines, descriptionPattern);
    if (descriptionMatch.Success)
    {
        var DescriptionValue = descriptionMatch.Groups [2].Value.Trim();
        descriptions.Add(DescriptionValue);
    }
    Console.WriteLine("Description: " + descriptions [i]);
    Console.WriteLine("Quantity: 1.00 Units");
    Console.WriteLine("Unit Price: $" + unitPrices [i]);
    taxes.Add(cost [i] * 0.15m); // Calculate Taxes (15%)
    Console.WriteLine("Taxes: $" + taxes [i]);
    amounts.Add(unitPrices [i] + taxes [i]);
    Console.WriteLine("Amount: $" + amounts [i]);
    Console.WriteLine("-----------------------");
}
using IronOcr;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

var ocr = new IronTesseract();
using (var input = new OcrInput(@"r2.png"))
{
    var result = ocr.Read(input);
    var descriptionPattern = @"\[([A-Z0-9_]+)]\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)";
    var pricePattern = @"\$\d+(\.\d{2})?";
    var descriptions = new List<string>();
    var unitPrices = new List<decimal>();
    var taxes = new List<decimal>();
    var amounts = new List<decimal>();
    var lines = result.Text.Split('\n');
    var descriptionMatch = Regex.Match(lines, descriptionPattern);
    if (descriptionMatch.Success)
    {
        var DescriptionValue = descriptionMatch.Groups [2].Value.Trim();
        descriptions.Add(DescriptionValue);
    }
    Console.WriteLine("Description: " + descriptions [i]);
    Console.WriteLine("Quantity: 1.00 Units");
    Console.WriteLine("Unit Price: $" + unitPrices [i]);
    taxes.Add(cost [i] * 0.15m); // Calculate Taxes (15%)
    Console.WriteLine("Taxes: $" + taxes [i]);
    amounts.Add(unitPrices [i] + taxes [i]);
    Console.WriteLine("Amount: $" + amounts [i]);
    Console.WriteLine("-----------------------");
}
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System
Imports System.Collections.Generic
Imports System.Text.RegularExpressions

Private ocr = New IronTesseract()
Using input = New OcrInput("r2.png")
	Dim result = ocr.Read(input)
	Dim descriptionPattern = "\[([A-Z0-9_]+)]\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)"
	Dim pricePattern = "\$\d+(\.\d{2})?"
	Dim descriptions = New List(Of String)()
	Dim unitPrices = New List(Of Decimal)()
	Dim taxes = New List(Of Decimal)()
	Dim amounts = New List(Of Decimal)()
	Dim lines = result.Text.Split(ControlChars.Lf)
	Dim descriptionMatch = Regex.Match(lines, descriptionPattern)
	If descriptionMatch.Success Then
		Dim DescriptionValue = descriptionMatch.Groups (2).Value.Trim()
		descriptions.Add(DescriptionValue)
	End If
	Console.WriteLine("Description: " & descriptions (i))
	Console.WriteLine("Quantity: 1.00 Units")
	Console.WriteLine("Unit Price: $" & unitPrices (i))
	taxes.Add(cost (i) * 0.15D) ' Calculate Taxes (15%)
	Console.WriteLine("Taxes: $" & taxes (i))
	amounts.Add(unitPrices (i) + taxes (i))
	Console.WriteLine("Amount: $" & amounts (i))
	Console.WriteLine("-----------------------")
End Using
VB   C#

如下所示,IronOCR 可以轻松地从收据中提取所需的文本。

收据扫描 API(开发人员教程),图 8:输出

输出

提取整个收据

如果您想提取整张收据,只需在 OCR 收据上写几行代码就能轻松实现。

using IronOcr;
using System;

var ocr = new IronTesseract();
using (var input = new OcrInput(@"r3.png"))
{
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
using IronOcr;
using System;

var ocr = new IronTesseract();
using (var input = new OcrInput(@"r3.png"))
{
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
Imports IronOcr
Imports System

Private ocr = New IronTesseract()
Using input = New OcrInput("r3.png")
	Dim result = ocr.Read(input)
	Console.WriteLine(result.Text)
End Using
VB   C#

扫描收据 API(开发人员教程),图 9:扫描收据 API 输出

扫描接收应用程序接口输出

收据图像扫描 API(如 IronOCR)为从收据中自动提取数据提供了强大的软件解决方案。通过利用先进的 OCR 技术,企业可以轻松地从收据图像或扫描件中提取重要信息,包括企业供应商名称、购买日期、明细清单、价格、税金和总金额。支持 多语言, 货币、收据格式条形码支持通过 IronOCR,企业可以简化收据管理流程,节省时间,深入了解消费模式,并做出数据驱动的决策。IronOCR 作为一个通用的 OCR 库和 API,为开发人员提供了从各种来源中准确、高效地提取文本所需的工具,实现了任务自动化并提高了整体效率。通过满足必要的先决条件并将 IronOCR 集成到其应用程序中,开发人员可以释放收据数据处理的优势并增强其工作流程。

有关 IronOCR 的更多信息,请访问以下网站 许可页面.要了解如何使用计算机视觉查找文本,请访问此处 计算机视觉方法页面.有关收据 OCR 的更多教程,请访问以下网站 OCR C# 教程.

< 前一页
OCR自动化(C#教程中的OCR车牌识别)
下一步 >
最佳发票处理OCR(更新列表)

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

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