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.FOSS

O 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.


Introdução

Recursos Relacionados