IRONSOFTWAREHOME
USING IRONOCR

如何使用 C# 中的 OCR 从收据中提取数据

Kannaopat Udonpant
Kannapat Udonpant
Updated: 2026年6月28日

IronOCR提供了一个强大的 C# 库,使用先进的 OCR 技术从收据图像中提取文本,支持 125 种语言和内置图像预处理功能,可实现自动费用跟踪和数据分析。

收据和自动化

收据在当今快节奏的世界中至关重要。 无论你是购买食品杂货还是外出就餐,收据都能帮助你追踪支出并进行预算。 与此同时,商店使用收据扫描仪分析销售数据,通过数据提取技术帮助他们预测需求和管理库存。

然而,收据可能难以辨认,计算结果也并不总是清晰明了。 手动录入预算数据既繁琐又容易出错,尤其是在项目很多的情况下。 丢失收据可能会让你的每月超支变成一个谜。 传统纸质收据经常存在打印质量差、油墨褪色和热敏纸老化等问题,因此OCR 图像优化对于准确提取至关重要。

为了解决这个问题,预算和财务应用程序采用了OCR (光学字符识别)技术。 通过将收据扫描成数字格式,OCR 可以最大限度地减少错误,自动输入数据,跟踪支出,并揭示购买模式。 现代OCR 解决方案可处理各种收据格式,从传统的销售点打印输出到具有条形码和二维码读取功能的数字收据。

OCR利用机器学习技术从图像中识别和提取文本。 该过程包括图像预处理、字符分割、模式识别和验证。 然而,OCR 并非完美无缺——模糊或污迹会导致错误。 先进系统利用计算机视觉技术来提高准确率。 选择一个可靠的、能够高效处理和优化读取的 OCR 库对于成功实现文档自动化至关重要。

为什么我应该选择IronOCR进行收据处理?

IronOCR是一个基于定制Tesseract OCR 引擎的 C# 库。与标准 Tesseract 不同, IronOCR包含了Tesseract 5 的优化和专为.NET开发人员设计的功能。 它之所以脱颖而出,是因为它具备以下特点:

1.**跨平台兼容性:**可与.NET 8、7、6、5 和 Framework 4.6.2+ 配合使用。 可在 Windows、macOS、Azure 和 Linux 系统上运行。 可无缝部署到DockerAWS LambdaAzure Functions

2.**灵活性和可扩展性:**支持 JPG、PNG 和 GIF 格式。 与 System.Drawing 对象集成。 处理多页 TIFFPDF 流。 支持 多线程,适用于高吞吐量场景。

3.**易用性和支持:**文档齐全,API 功能强大,并提供 24/5 支持。 提供简单的单行操作详细的配置选项。 包含全面的故障排除指南

4.**多语言功能:**支持125 种国际语言。 能够有效识别产品名称和价格。 支持每个文档使用多种语言。 支持自定义训练数据文件

5.**高级图像处理:**内置滤镜可自动增强收据质量。 包括降噪方向校正DPI 优化筛选向导会自动确定最佳设置。

如何在我的应用程序中实现收据OCR?

我需要什么许可证才能开始?

使用IronOCR之前,您需要一个许可证密钥。 点击这里获取免费试用。 许可选项包括Lite、 Plus和Professional三种级别,分别适用于不同规模的团队和部署场景。 请参阅有关应用许可证密钥的文档。

// Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";

对于 Web 应用程序,请在 Web.config 中设置许可证密钥以进行集中配置。 随着您的业务发展,许可系统支持扩展和升级

如何使用IronOCR读取超市收据?

让我们探索如何在应用程序中使用IronOCR ,该应用程序可以使用智能手机扫描超市收据,提取产品名称和价格,并根据购买情况奖励忠诚度积分。 这包括图像采集、预处理、OCR执行以及使用结果置信度评分进行数据验证。

典型的收据图片是什么样的?

Sample supermarket receipt showing Lorem ipsum placeholder text with items, prices, subtotal of $107.60, and payment details - demonstrating typical receipt layout with header, item list, totals, and barcode

常见的收据问题包括热敏纸质量、字体不统一、版面拥挤以及折叠或受潮造成的损坏。 IronOCR 的预处理通过图像质量校正颜色校正技术来处理这些问题。

提取收据数据需要哪些C#代码?

using IronOcr;

class ReceiptScanner
{
    static void Main()
    {
        // Set the license key for IronOCR
        IronOcr.License.LicenseKey = "YOUR-KEY";
        
        // Instantiate OCR engine with optimal settings for receipts
        var ocr = new IronTesseract();
        
        // Configure for receipt-specific text
        ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.$,- ";
        ocr.Configuration.BlackListCharacters = "~`@#%^*_+={}[]|\\:;\"'<>?";
        
        using var inputPhoto = new OcrInput();
        inputPhoto.LoadImage("supermarketexample.jpg");
        
        // Apply preprocessing for better accuracy
        inputPhoto.DeNoise();
        inputPhoto.ToGrayScale();
        inputPhoto.Contrast(1.2);
        
        // Perform OCR on the loaded image
        OcrResult result = ocr.Read(inputPhoto);
        
        // Output the text extracted from the receipt
        string text = result.Text;
        Console.WriteLine(text);
        
        // Extract specific data using OcrResult features
        foreach (var line in result.Lines)
        {
            if (line.Text.Contains("TOTAL"))
            {
                Console.WriteLine($"Total Found: {line.Text}");
            }
        }
    }
}

这段代码演示了:

  1. 导入IronOCR库。
  2. 实例化OCR引擎(IronTesseract)并使用配置选项
  3. 创建一个新的OcrInput来加载收据图像。
  4. 应用预处理以提高准确度。
  5. 使用Read方法提取文本。
  6. 使用OcrResult 类处理结构化数据的结果。

IronOCR支持读取不同格式的收据屏幕截图扫描文档。 它还可以从结构化收据中提取表格数据

如何验证提取数据的准确性?

为确保一致性,检查提取数据的置信度。 IronOCR提供多层次的全面置信度指标

OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine($"Overall Confidence: {result.Confidence}%");

// Check confidence for individual elements
foreach (var word in result.Words)
{
    if (word.Confidence < 80)
    {
        Console.WriteLine($"Low confidence word: '{word.Text}' ({word.Confidence}%)");
    }
}

// Validate numeric values
foreach (var block in result.Blocks)
{
    if (block.Text.Contains("$"))
    {
        Console.WriteLine($"Price detected: {block.Text} (Confidence: {block.Confidence}%)");
    }
}

属性Confidence测量统计精度,范围从0(低)到100(高)。 利用这些置信水平来确定如何处理数据。 对于生产系统,实施进度跟踪以监控 OCR 操作。

如何通过图像预处理提高OCR准确率?

处理图像前,请使用以下方法预处理图像,以获得更好的处理效果:

using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("receipt.jpg");

// Basic preprocessing
inputPhoto.DeNoise();           // Removes noise from the image
inputPhoto.ToGrayScale();       // Converts image to grayscale
inputPhoto.Contrast(1.5);       // Enhance contrast for faded receipts
inputPhoto.Sharpen();           // Improve text clarity

// Advanced preprocessing for challenging receipts
inputPhoto.Rotate(2.5);         // Correct slight rotation
inputPhoto.Deskew();            // Automatically straighten receipt
inputPhoto.Scale(200);          // Upscale low-resolution images

// Handle specific receipt issues
if (receiptIsDamaged)
{
    inputPhoto.Dilate();        // Thicken thin text
    inputPhoto.Erode();         // Reduce text bleeding
}

// For colored or patterned backgrounds
inputPhoto.Binarize();          // Convert to pure black and white
inputPhoto.Invert();            // Handle white text on dark background

这些预处理步骤可以提高提取精度。 筛选向导会自动为您的收据找到最佳筛选组合。对于彩色背景的收据,颜色校正至关重要。

高级场景可能需要针对特定​​区域的 OCR来重点识别总数或税务信息。 对于带有条形码的收据,启用条形码读取和文本提取功能。

使用IronOCR进行收据处理的主要优势是什么?

收据 OCR 技术可帮助企业和个人进行预算编制、防欺诈和自动数据收集。 IronOCR具有准确性高、速度快、易于与现有平台集成等优点,是收据扫描解决方案的理想选择。

主要优势包括:

1.性能优化:通过多线程速度调优,高效处理数千张收据。

2.**导出灵活性:**将收据转换为可搜索的 PDFhOCR HTML ,以便集成到 Web 中。

3.**Enterprise功能:**部署到AzureDockerLinux 服务器以实现可扩展性。

4.**专业识别:**阅读收据上的手写笔记并提取表格结构

5.调试工具:突出显示文本可视化结果导出功能有助于故障排除。

试用 IronOCR 的试用许可证,探索其各项功能。 全面的文档代码示例可帮助您快速实现收据 OCR。

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户