
如何在 C# 中创建 OCR 收据扫描器
本教程旨在帮助初学者使用 C# 中的 OCR API OCR 收据扫描仪创建一个 IronOCR 。 本指南结束时,您将了解如何使用收据 OCR API 实现光学字符识别 (OCR),将不同类型的收据文件转换为可编辑和可搜索的数据。 对于希望实现费用管理自动化并尽量减少人工数据输入的企业来说,这项技术可以改变游戏规则。 让我们开始吧!
How To Create an OCR Receipt Scanner In C#
1.在 Visual Studio 中创建一个 C# 控制台项目。
2.使用 NuGet 软件包管理器安装 OCR 库。
3. 使用OcrInput方法将收据加载到程序中。
4. 使用Read方法提取文本。
5.在控制台上显示提取的文本。
前提条件
在我们进入编码部分之前,请确保您具备以下条件:
- **Visual Studio:**这将是我们的集成开发环境 (IDE),我们将在其中编写和运行我们的 C# 代码。
- **IronOCR库:**我们将使用IronOCR,这是一个高级的 OCR 库,可以轻松集成到 C# 应用程序中。 3.收据样本:一个名为Sample_Receipt.jpg的收据图像文件,我们将使用它来测试我们的OCR 实现。
如何在C#中创建OCR收据扫描器:图1 - 样本收据的图像
步骤 1:设置项目
**打开 Visual Studio:**在桌面或应用程序菜单中找到 Visual Studio 图标,双击即可打开该程序。
**创建新项目:**打开 Visual Studio 后,您会看到一个启动窗口。 单击 "创建新项目 "按钮。 如果您已经打开了 Visual Studio,但没有看到启动窗口,可以通过单击顶部菜单中的 "文件">"新建">"项目 "来访问该窗口。
选择项目类型:在"创建新项目"窗口中,您将看到各种项目模板。 在搜索框中输入 "Console App "过滤选项,然后根据您的偏好和兼容性选择 Console App (.NET Core) 或 Console App (.NET Framework)。 然后单击下一步按钮。
**配置您的新项目:**现在,您将看到一个名为"配置您的新项目"的屏幕。
- 在项目名称字段中,输入
OCRReceiptScanner作为项目名称。 - 在位置字段中选择或确认保存项目的位置。
- 如果希望解决方案名称与项目名称不同,还可以选择指定解决方案名称。
- 填写完这些详细信息后,请单击下一步按钮。
**附加信息:**可能会要求您选择目标 .NET Framework。 选择最新版本(除非您有特定的兼容性要求),然后单击 创建。
步骤 2:集成 IronOCR
在使用 IronOCR 库之前,我们需要将其包含在我们的项目中。 请遵循以下步骤:
1.右键单击解决方案资源管理器中的项目。 2.选择 "管理 NuGet 软件包"。 3.在 NuGet 包管理器窗口中,您将看到几个选项卡,如 浏览、已安装、更新 和 合并。 单击浏览选项卡。 4. 在搜索框中,键入 IronOCR。 这是我们希望添加到项目中的库的名称。 按回车键搜索。 5.搜索结果将显示 IronOCR 库包。 这应该是您最先看到的结果之一。 点击选择。 6.选择 IronOCR 软件包后,您会发现右侧有一个面板显示该软件包的信息,包括描述和版本。 该面板中还有一个 Install 按钮。
如何在C#中创建OCR收据扫描器:图2 - 通过NuGet包管理器安装IronOCR
7.单击安装按钮。 该操作可能会提示您检查更改,并可能显示将与 IronOCR 一起包含的依赖项列表。 检查更改和依赖关系,如果一切正常,则确认并继续安装。
步骤 3:配置项目
安装 IronOCR 后,下一步就是配置项目。 具体方法如下
**添加命名空间:**在您的Program.cs文件的顶部包含以下命名空间:
using IronOcr;
using System;Imports IronOcr
Imports System**配置设置:**如果您有任何配置设置,例如 API 密钥或许可证密钥,请务必将其包含在内。 对于 IronOCR,您需要设置许可证密钥,如提供的代码所示:
License.LicenseKey = "License-Key"; // replace 'License-Key' with your keyLicense.LicenseKey = "License-Key" ' replace 'License-Key' with your key步骤 4:读取收据
现在,让我们编写代码来读取收据。
**定义收据路径:**指定要扫描的收据文件的路径。
string pdfFilePath = "Sample_Receipt.jpg";Dim pdfFilePath As String = "Sample_Receipt.jpg"**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 ex As Exception
' Handle exceptions here
Console.WriteLine($"An error occurred: {ex.Message}")
End Try步骤 5:实施 OCR.
在第 5 步,我们将深入探讨应用程序的核心功能:实施 OCR 来读取和解释收据中的数据。 这包括初始化 OCR 引擎、配置输入、执行 OCR 操作和显示结果。
初始化 IronTesseract
代码的第一部分创建了IronTesseract类的实例:
var ocr = new IronTesseract();Dim ocr = New IronTesseract()通过创建IronTesseract的实例,我们实际上是在设置OCR工具,使其准备执行文本识别任务。 这就好比在驾驶汽车之前先启动发动机。 该对象将用于控制 OCR 过程,包括读取输入内容并从中提取文本。
配置 OCR 输入
接下来,我们定义 OCR 流程的输入:
using (var input = new OcrInput(pdfFilePath))
{
// OCR processing will go here
}Using input = New OcrInput(pdfFilePath)
' OCR processing will go here
End Using在这个部分中,OcrInput用于指定我们想要处理的文件。 OcrInput使用的资源(如文件句柄)。 这是一种有效管理资源的方法,可确保您的应用程序顺利运行,而不会造成不必要的内存占用。
执行 OCR
在Read方法:
var result = ocr.Read(input);Dim result = ocr.Read(input)Read方法将接受输入文件路径作为参数。 此行将开始扫描收据。 它将对给定的输入文件进行OCR,提取数据,并存储在变量result中。 我们可以使用该方法提取的文本执行任何文本操作。
输出结果
最后,我们输出 OCR 识别出的文本:
Console.WriteLine(result.Text);Console.WriteLine(result.Text)result.Text包含从收据中提取的实际文本。 Console.WriteLine函数然后获取该文本并在控制台上显示。 这样您就可以看到并验证 OCR 过程的结果。 这是完整的Program.cs文件代码:
using IronOcr;
using System;
class Program
{
static void Main(string[] args)
{
// Set your IronOCR license key
License.LicenseKey = "Your-License-Key";
// Define the path to the receipt image
string pdfFilePath = "Sample_Receipt.jpg";
try
{
// Initialize the OCR engine
var ocr = new IronTesseract();
// Define the input file
using (var input = new OcrInput(pdfFilePath))
{
// Perform OCR and get the result
var result = ocr.Read(input);
// Display the extracted text
Console.WriteLine(result.Text);
}
}
catch (Exception ex)
{
// Handle exceptions and log them if necessary
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}Imports IronOcr
Imports System
Class Program
Shared Sub Main(args As String())
' Set your IronOCR license key
License.LicenseKey = "Your-License-Key"
' Define the path to the receipt image
Dim pdfFilePath As String = "Sample_Receipt.jpg"
Try
' Initialize the OCR engine
Dim ocr = New IronTesseract()
' Define the input file
Using input = New OcrInput(pdfFilePath)
' Perform OCR and get the result
Dim result = ocr.Read(input)
' Display the extracted text
Console.WriteLine(result.Text)
End Using
Catch ex As Exception
' Handle exceptions and log them if necessary
Console.WriteLine($"An error occurred: {ex.Message}")
End Try
End Sub
End Class步骤 6:运行应用程序
1.**构建项目:**点击"构建"菜单,然后选择"构建解决方案"。 2.**运行项目:**按 F5 键或单击"开始"按钮运行您的应用程序。
现在,您可以看到从收据输出到控制台的文本。 此文本代表从您的收据图像中提取的数据。 我们就是这样使用 IronOCR 扫描收据的。 这是一个使用 OCR 功能从纸质收据中提取数据的简单示例。这是一个非常通用的实现。 您可以修改代码,使其与收据图片的布局相匹配。
如何在C#中创建OCR收据扫描器:图3 - 上一个代码示例输出的文本
之后,您可以使用我们扫描收据后从收据中获得的非结构化数据。我们可以从收据的特定部分获取重要信息。 或者,我们可以以更有条理的方式展示收据数据。 我们可以使用 IronOCR 制作一个 OCR 收据扫描软件应用程序。 这将有助于我们提取准确的收据字段数据。
结论
祝贺您! 您已经使用 C# 和 IronOCR 成功构建了一个 OCR 收据扫描仪。 该扫描仪可大大提高数据提取的准确性,满足各种业务需求,如费用跟踪、供应链管理等。 以后再也不用查看扫描的收据并手动提取数据了。
IronOCR提供免费试用,允许用户免费探索和评估其功能。对于希望在专业环境中集成和利用全部功能的人,许可证起售价为$999,为强大的OCR收据扫描和数据提取需求提供了全面的解决方案。
请记住,这仅仅是个开始。 您可以扩展此应用程序,以支持各种文件类型,改善数据隐私,或集成其他功能,如识别特定字段的收据,如税额、日期、行项目等。 有了 OCR 技术,我们就有了无限可能,为更高效、更智能的业务流程铺平了道路。 祝您编码愉快!
相关文章


