使用 IRONOCR

如何在C#中创建OCR收据扫描器

发布 2024年二月18日
分享:

本教程旨在帮助初学者创建一个 OCR 收据扫描仪 使用 IronOCR在本指南的最后,您将了解如何在 C# 中实现光学字符识别 API。本指南结束时,您将了解如何实现光学字符识别 (光学字符识别) 利用收据 OCR API 将不同类型的收据文件转换为可编辑和可搜索的数据。对于希望实现费用管理自动化并尽量减少人工数据输入的企业来说,这项技术可以改变游戏规则。让我们开始吧!

如何在 C# 中创建 OCR 收据扫描仪1.在 Visual Studio 中创建一个 C# Console 项目

2.使用 NuGet 软件包管理器安装 OCR 库3.使用 OcrInput 方法将收据加载到程序中

4.使用读取方法提取文本5.在控制台显示提取的文本

先决条件

在开始编码之前,请确保您具备以下条件:

  1. 视觉工作室:这将是我们的集成开发环境 (IDE)我们将在这里编写和运行 C# 代码。

  2. IronOCR 库:我们将使用 IronOCR,这是一个先进的 OCR 库,可以轻松集成到 C# 应用程序中。

    1. 收据样本:一个名为Sample_Receipt.jpg的收据图像文件,我们将用它来测试我们的Sample_Receipt.jpgOCR 实施.

如何在 C# 中创建 OCR 收据扫描仪:图 1 - 样本收据的图像

步骤 1:设置项目

打开 Visual Studio:在桌面或应用程序菜单中找到 Visual Studio 图标,然后双击该图标打开程序。

创建新项目:Visual Studio 打开后,会出现一个启动窗口。点击 "创建新项目 "按钮。如果已经打开了 Visual Studio,但没有看到启动窗口,可以从顶部菜单点击 "文件">"新建">"项目 "进入。

选择项目类型:在 "创建新项目 "窗口中,你会看到各种项目模板。在搜索框中输入 "控制台应用程序 "过滤选项,然后选择控制台应用程序 (.NET Core) 或控制台应用程序 (.NET框架)取决于您的偏好和兼容性。然后点击下一步按钮。

配置新项目:现在,你会看到一个名为 "配置新项目 "的屏幕。

  • 在 "项目名称 "字段中,输入 OCRReceiptScanner 作为项目名称。
  • 在位置字段中选择或确认保存项目的位置。
  • 如果希望解决方案名称与项目名称不同,还可以选择指定解决方案名称。
  • 填写完这些详细信息后,单击下一步按钮。

附加信息: 可能会要求您选择目标 .NET Framework。选择最新版本 (除非您有特殊的兼容性要求) 然后点击创建

第 2 步:整合 IronOCR

在使用 IronOCR 库之前,我们需要在项目中包含它。请按照以下步骤操作:

1.右键单击解决方案资源管理器中的项目。

2.选择 "管理 NuGet 包"。

3.在 NuGet 包管理器窗口中,你会看到几个选项卡,如浏览已安装更新合并。点击浏览选项卡。

4.在搜索框中输入IronOcr。这是我们希望添加到项目中的库名称。按回车键搜索。

5.搜索结果将显示 IronOCR 库包。它应该是你最先看到的结果之一。点击它来选择。

6.选择 IronOCR 软件包后,你会发现右侧有一个面板显示软件包的信息,包括描述和版本。面板上还有一个安装按钮。

![如何在 C# 中创建 OCR 收据扫描仪:图 2 - 通过 NuGet 软件包管理器安装 IronOCR](/static-assets/ocr/blog/ocr-receipt-scanner-csharp-tutorial/ocr-receipt-scanner-csharp-tutorial-2.webp)

7.单击安装按钮。此操作可能会提示您查看更改,并显示将与 IronOcr 一起包含的依赖项列表。查看更改和依赖项,如果一切正常,请确认并继续安装。

第 3 步:配置项目

安装完 IronOCR 后,下一步就是配置项目。具体方法如下

添加命名空间:在Program.cs文件顶部,包含以下命名空间:

using IronOcr;
using System;
using IronOcr;
using System;
Imports IronOcr
Imports System
VB   C#

配置设置:如果有任何配置设置,如 API 密钥或许可证密钥,请务必包含在内。对于 IronOCR,您需要设置许可证密钥,如提供的代码所示:

License.LicenseKey = "License-Key"; // replace 'License-Key' with your key
License.LicenseKey = "License-Key"; // replace 'License-Key' with your key
License.LicenseKey = "License-Key" ' replace 'License-Key' with your key
VB   C#

第 4 步:阅读收据

现在,让我们编写读取收据的代码。

定义收据路径:指定要扫描的收据文件的路径。

string pdfFilePath = "Sample_Receipt.jpg";
string pdfFilePath = "Sample_Receipt.jpg";
Dim pdfFilePath As String = "Sample_Receipt.jpg"
VB   C#

Try-Catch 块:使用 try-catch 块实现错误处理。这将帮助你管理 OCR 过程中出现的任何异常。

try
{
    // OCR code will go here
}
catch (Exception ex)
{
    // Handle exceptions here
    Console.WriteLine($"An error occurred: {ex.Message}");
}
try
{
    // OCR code will go here
}
catch (Exception ex)
{
    // Handle exceptions here
    Console.WriteLine($"An error occurred: {ex.Message}");
}
Try
	' OCR code will go here
Catch ex As Exception
	' Handle exceptions here
	Console.WriteLine($"An error occurred: {ex.Message}")
End Try
VB   C#

步骤 5:实施 OCR

在步骤 5 中,我们将深入研究应用程序的核心功能:实施 OCR 以读取和解释收据中的数据。这包括初始化 OCR 引擎、配置输入、执行 OCR 操作和显示结果。

初始化钢铁魔方

代码的第一部分创建了一个 IronTesseract 类的实例:

var ocr = new IronTesseract();
var ocr = new IronTesseract();
Dim ocr = New IronTesseract()
VB   C#

通过创建IronTesseract的实例,我们基本上就完成了 OCR 工具的设置,使其能够执行文本识别任务。这就像在驾驶汽车之前先启动发动机一样。该对象将用于控制 OCR 进程,包括读取输入内容并从中提取文本。

配置 OCR 输入

接下来,我们定义 OCR 流程的输入:

using (var input = new OcrInput(pdfFilePath))
{
    // OCR processing will go here
}
using (var input = new OcrInput(pdfFilePath))
{
    // OCR processing will go here
}
Using input = New OcrInput(pdfFilePath)
	' OCR processing will go here
End Using
VB   C#

在这一段中,OcrInput 用于指定我们要处理的文件。 pdfFilePath是一个变量,包含我们的收据文件的路径。通过将此变量传递给 OcrInput,我们就告诉了 OCR 引擎:"这是我要你读取的文件"。使用*语句是一种特殊的 C# 结构,可确保OcrInput使用的资源与OcrInput**使用的资源一致。 (如文件句柄) 处理完成后,内存会被适当释放。这是一种有效管理资源的方法,可确保应用程序顺利运行,避免不必要的内存使用。

执行 OCR

使用块中,我们在ocr实例上调用Read方法:

var result = ocr.Read(input);
var result = ocr.Read(input);
Dim result = ocr.Read(input)
VB   C#

Read 方法将输入文件路径作为参数。这一行将启动收据扫描。它将对给定的输入文件进行 OCR 处理,提取数据并将其存储到结果变量中。我们可以使用该方法提取的文本执行任何文本操作。

输出结果

最后,我们输出 OCR 识别出的文本:

Console.WriteLine(result.Text);
Console.WriteLine(result.Text);
Console.WriteLine(result.Text)
VB   C#

result变量包含 OCR 处理的输出,result.Text包含从收据中提取的实际文本。然后,Console.WriteLine 函数会获取这些文本并将其显示在控制台上。这样,您就可以看到并验证 OCR 处理的结果。以下是完整的 Program.cs 文件代码:

using IronOcr;
using Microsoft.Extensions.Configuration;
using System;
class Program
{
    static void Main(string [] args)
    {
        License.LicenseKey = "Your-License-Key";
        string pdfFilePath = "Sample_Receipt.jpg";
        try
        {
            var ocr = new IronTesseract();
            using (var input = new OcrInput(pdfFilePath))
            {
                var result = ocr.Read(input);
                    Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions (e.g., file not found, OCR errors) and log them if necessary.
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
using IronOcr;
using Microsoft.Extensions.Configuration;
using System;
class Program
{
    static void Main(string [] args)
    {
        License.LicenseKey = "Your-License-Key";
        string pdfFilePath = "Sample_Receipt.jpg";
        try
        {
            var ocr = new IronTesseract();
            using (var input = new OcrInput(pdfFilePath))
            {
                var result = ocr.Read(input);
                    Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions (e.g., file not found, OCR errors) and log them if necessary.
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
Imports IronOcr
Imports Microsoft.Extensions.Configuration
Imports System
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		License.LicenseKey = "Your-License-Key"
		Dim pdfFilePath As String = "Sample_Receipt.jpg"
		Try
			Dim ocr = New IronTesseract()
			Using input = New OcrInput(pdfFilePath)
				Dim result = ocr.Read(input)
					Console.WriteLine(result.Text)
			End Using
		Catch ex As Exception
			' Handle exceptions (e.g., file not found, OCR errors) and log them if necessary.
			Console.WriteLine($"An error occurred: {ex.Message}")
		End Try
	End Sub
End Class
VB   C#

第 6 步:运行应用程序

  1. 构建项目:点击 "构建 "菜单,然后选择 "构建解决方案"。

  2. 运行项目:按 F5 键或点击 "开始 "按钮运行应用程序。

现在,您将看到收据上的文本输出到控制台。这段文字代表了从收据图像中提取的数据。这就是我们使用 IronOCR 扫描收据的过程。这是一个使用 OCR 功能从纸质收据中提取数据的简单示例。这是一个非常通用的实现。您可以根据收据图像的布局修改代码。

如何在 C# 中创建 OCR 收据扫描仪:图 3 - 上一代码示例的输出文本

之后,你就可以使用我们扫描收据后从收据中获得的非结构化数据。我们可以从收据的特定部分获取重要信息。或者,我们可以以更有条理的方式显示收据数据。我们可以使用 IronOCR 制作一个 OCR 收据扫描软件应用程序。这将帮助我们提取收据字段的准确数据。

结论

祝贺! 您已使用 C# 和 IronOCR 成功创建了一个 OCR 收据扫描仪。该扫描仪可大大提高数据提取的准确性,满足各种业务需求,如费用跟踪、供应链管理等。您将不再需要查看扫描的收据并手动提取数据。

IronOCR 提供 免费试用,允许用户免费探索和评估其功能。对于那些寻求在专业设置中集成和利用全部功能的用户,许可证的起价为"$liteLicense",可为强大的 OCR 收据扫描和数据提取需求提供全面的解决方案。

请记住,这仅仅是个开始。您可以扩展此应用程序,以支持各种文件类型,提高数据私密性,或集成其他功能,如针对特定字段(如税额、日期、行项目等)的收据识别。有了 OCR 技术,一切皆有可能,为更高效、更智能的业务流程铺平道路。快乐编码!

< 前一页
如何使用C#通过OCR读取身份证件
下一步 >
如何创建发票OCR解决方案

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

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