如何通过 Aspose.OCR 从图像中提取表和表数据

如何通过 Aspose.OCR 从图像中提取表和表数据

从图像、表格或扫描报告中提取表是具有挑战性的 - 手动重新编写是缓慢和错误的。

现实世界问题

财务报表、调查表格和科学结果经常被扫描表或图像所困扰,手动重复这些数据会浪费时间和风险引入错误。

解决方案概述

Aspose.OCR for .NET 可以准确地检测、提取和将图像或扫描的 PDF 中的表格转换为机器可读的格式 - 适合 Excel、报告或工作流自动化。

原則

  • Visual Studio 2019 或以后
  • .NET 6.0 或更高版本(或 .Net Framework 4.6.2+)
  • Aspose.OCR 为 .NET 从 NuGet
  • 基本的C#知识
PM> Install-Package Aspose.OCR

步骤实施

步骤 1: 安装和设置 Aspose.OCR

using Aspose.OCR;

步骤2:扫描或拍摄包含表的图像

OcrInput input = new OcrInput(InputType.SingleImage);
input.Add("table1.jpg");
input.Add("report_page.png");

步骤3:设置表识别设置

RecognitionSettings settings = new RecognitionSettings();
settings.Language = Language.English;
settings.DetectAreasMode = DetectAreasMode.TABLE; // Key for tables

步骤4:运行桌面提取过程

AsposeOcr ocr = new AsposeOcr();
List<RecognitionResult> results = ocr.Recognize(input, settings);

步骤5:出口表数据

foreach (RecognitionResult result in results)
{
    result.Save("table_data.xlsx", SaveFormat.Xlsx); // Excel output
    result.Save("table_data.csv", SaveFormat.Csv);   // CSV output
    result.Save("table_data.txt", SaveFormat.Text);  // Plain text output
}

步骤6:添加错误处理和验证

try
{
    AsposeOcr ocr = new AsposeOcr();
    List<RecognitionResult> results = ocr.Recognize(input, settings);
    // Further processing
}
catch (Exception ex)
{
    Console.WriteLine($"Error: {ex.Message}");
}

步骤7:优化复杂、旋转或多页表

  • 预处理图像到 deskew 或 crop
  • 使用高分辨率扫描或照片
  • 对于多页PDF,将每个页面添加为单独的输入
foreach (string file in Directory.GetFiles("./scans", "*.png"))
{
    input.Add(file);
}

步骤8:完整的例子

using Aspose.OCR;
using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            OcrInput input = new OcrInput(InputType.SingleImage);
            input.Add("table1.jpg");
            input.Add("report_page.png");

            RecognitionSettings settings = new RecognitionSettings();
            settings.Language = Language.English;
            settings.DetectAreasMode = DetectAreasMode.TABLE;

            AsposeOcr ocr = new AsposeOcr();
            List<RecognitionResult> results = ocr.Recognize(input, settings);

            foreach (RecognitionResult result in results)
            {
                result.Save("table_data.xlsx", SaveFormat.Xlsx);
                result.Save("table_data.csv", SaveFormat.Csv);
                result.Save("table_data.txt", SaveFormat.Text);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}

使用案例和应用程序

财务和科学报告

从财务报告、实验室结果或研究论文中提取表格,以便在Excel中进行即时分析。

调查和形式处理

从扫描表格、检查列表或审查记录中数字化表。

工作流自动化

将结构化表数据直接传输到您的业务应用程序、BI工具或数据库中。

共同挑战与解决方案

挑战1:低质量或复杂的桌子

** 解决方案:** 使用高清图像并测试样品集。

挑战2:旋转或折叠的桌子

** 解決方案:** 在處理前解除圖像;使用 DetectAreasMode.TABLE。

挑战3:多页报告

** 解决方案:** 将每个页面添加为单独输入包处理。

绩效考虑

  • 速度的Batch过程
  • 使用高品质的扫描/照片
  • 大跑后使用OCR物品

最佳实践

  • 融入前验证产量
  • 按需要设置图表识别设置
  • 备份原始和数字化数据
  • 在部署之前使用真实样品进行测试

先进的场景

场景1:多语言桌面提取

settings.Language = Language.German;

场景2:数据管道出口到JSON

foreach (RecognitionResult result in results)
{
    result.Save("table_data.json", SaveFormat.Json);
}

结论

Aspose.OCR 图为 .NET 将图像和扫描转化为可操作、结构化的图表数据,可用于分析、报告和自动化。

查看更多表识别代码样本在 ASPOSE.OCR 为 .NET API 参考 .

 中文