介绍
Aspose.OCR FOSS 用于 .NET 是一个全新的开源 C# 库,用于检测和识别光栅图像和 PDF 文档中的文本。它面向需要文本识别且不依赖外部 OCR 服务、云 API 或任何专有运行时的 .NET 开发者构建。
该库采用 MIT 许可证,没有外部 OCR 依赖:整个识别流水线——文本行检测、区域细化和拉丁文字识别——通过直接嵌入到程序集中的三个 ONNX 模型在本地运行,并通过 Microsoft.ML.OnnxRuntime 在 CPU 上执行。运行时无需模型下载步骤,也不需要网络调用。
包含内容
通过单一入口点识别图像和 PDF
AsposeOcr.Recognize() 是两种输入类型的唯一入口点。一个 OcrInput 使用 InputType.SingleImage 或 InputType.PDF 构建,并使用 OcrInput.Add() 将一个或多个文件路径加入队列。对于 InputType.PDF,每一页都会被识别并按源顺序返回。
using Aspose.OCR;
var api = new AsposeOcr();
using var input = new OcrInput(InputType.SingleImage);
input.Add("scan.png");
RecognitionResult result = api.Recognize(input)[0];
Console.WriteLine(result.RecognitionText);
行级文本和像素坐标
每个 RecognitionResult 通过 RecognitionText 返回完整页面文本,并通过 RecognitionLinesResult 返回各个识别的行——一个由 RecognitionResult.LinesResult 条目组成的列表,每个条目公开 TextInLine 以及位于 Line 中的 System.Drawing.Rectangle,提供该行在源图像中的像素坐标。
foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
Console.WriteLine($"{line.Line}: {line.TextInLine}");
}
批量处理多个文件
OcrInput 可以容纳多个文件。OcrOutput —— Recognize() 的返回值 —— 是一个 RecognitionResult 列表,每个对应一个图像或 PDF 页面,保持文件添加时的原始顺序。
using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");
OcrOutput output = api.Recognize(input);
快速入门
dotnet add package Aspose.OCR.FOSS下面的示例使用 AsposeOcr.Recognize() 识别 PDF 的每一页,并打印每页的文本以及其各个识别的行和对应的像素坐标。
using Aspose.OCR;
var api = new AsposeOcr();
using var input = new OcrInput(InputType.PDF);
input.Add("document.pdf");
OcrOutput output = api.Recognize(input);
foreach (RecognitionResult page in output)
{
Console.WriteLine(page.RecognitionText);
foreach (RecognitionResult.LinesResult line in page.RecognitionLinesResult)
{
Console.WriteLine($"{line.Line}: {line.TextInLine}");
}
}
唯一支持的输入类型是 InputType.SingleImage 和 InputType.PDF;任何其他输入类型都会抛出 NotSupportedException。
开源与授权
Aspose.OCR FOSS for .NET 在 MIT 许可证下发布。它可以被使用、修改和重新分发——包括在商业产品中——无需额外的许可费用。源代码可在 GitHub 获得。