如何通过 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 参考 .