Introdução
Aspose.OCR FOSS for .NET é uma nova biblioteca C# de código aberto para detectar e reconhecer texto em imagens raster e documentos PDF. Foi desenvolvida para desenvolvedores .NET que precisam de reconhecimento de texto sem depender de um serviço OCR externo, de um API na nuvem ou de qualquer runtime proprietário.
A biblioteca tem licença MIT e não possui dependência externa de OCR: todo o pipeline de reconhecimento — detecção de linhas de texto, refinamento de regiões e reconhecimento de scripts latinos — é executado localmente por meio de três modelos ONNX incorporados diretamente na assembly e executados na CPU via Microsoft.ML.OnnxRuntime. Nenhum passo de download de modelo e nenhuma chamada de rede são necessários em tempo de execução.
O que está incluído
Reconhecendo Imagens e PDFs por meio de um único ponto de entrada
AsposeOcr.Recognize() é o ponto de entrada único para ambos os tipos de entrada. Um OcrInput é construído com InputType.SingleImage ou InputType.PDF, e um ou mais caminhos de arquivo são enfileirados com OcrInput.Add(). Para InputType.PDF, cada página é reconhecida e retornada na ordem original.
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);
Texto em nível de linha e coordenadas de pixel
Cada RecognitionResult devolve o texto completo da página através de RecognitionText, e as linhas reconhecidas individualmente através de RecognitionLinesResult — uma lista de entradas RecognitionResult.LinesResult, cada uma expondo TextInLine e um System.Drawing.Rectangle em Line que fornece as coordenadas de pixel dessa linha na imagem de origem.
foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
Console.WriteLine($"{line.Line}: {line.TextInLine}");
}
Processamento em lote de vários arquivos
OcrInput pode conter mais de um arquivo. OcrOutput — o valor de retorno de Recognize() — é uma lista de RecognitionResult, uma por imagem ou página de PDF, preservando a ordem original em que os arquivos foram adicionados.
using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");
OcrOutput output = api.Recognize(input);
Início rápido
dotnet add package Aspose.OCR.FOSSO exemplo abaixo reconhece cada página de um PDF com AsposeOcr.Recognize() e imprime o texto de cada página juntamente com suas linhas reconhecidas individualmente e suas coordenadas de pixel.
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}");
}
}
Os únicos tipos de entrada suportados são InputType.SingleImage e InputType.PDF; qualquer outro tipo de entrada gera NotSupportedException.
Código aberto e licenciamento
Aspose.OCR FOSS para .NET é lançado sob a licença MIT. Pode ser usado, modificado e redistribuído — incluindo em produtos comerciais — sem taxas de licenciamento adicionais. O código-fonte está disponível em GitHub.