Introduzione

Aspose.OCR FOSS per .NET è una nuova libreria C# open-source per rilevare e riconoscere il testo in immagini raster e documenti PDF. È pensata per gli sviluppatori .NET che hanno bisogno di riconoscimento del testo senza dipendere da un servizio OCR esterno, da un API cloud o da qualsiasi runtime proprietario.

La libreria è rilasciata con licenza MIT e non ha dipendenze OCR esterne: l’intera pipeline di riconoscimento — rilevamento delle linee di testo, affinamento delle regioni e riconoscimento di script latini — viene eseguita localmente tramite tre modelli ONNX incorporati direttamente nell’assembly e eseguiti sulla CPU via Microsoft.ML.OnnxRuntime. Non è necessario alcun passaggio di download del modello né chiamate di rete durante l’esecuzione.


Cosa è incluso

Riconoscimento di immagini e PDF attraverso un unico punto di ingresso

AsposeOcr.Recognize() è il singolo punto di ingresso per entrambi i tipi di input. Un OcrInput è costruito con InputType.SingleImage o InputType.PDF, e uno o più percorsi file vengono accodati con OcrInput.Add(). Per InputType.PDF, ogni pagina viene riconosciuta e restituita nell’ordine di origine.

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);

Testo a livello di riga e coordinate pixel

Ogni RecognitionResult restituisce il testo completo della pagina tramite RecognitionText, e le linee riconosciute individualmente tramite RecognitionLinesResult — un elenco di RecognitionResult.LinesResult voci, ognuna delle quali espone TextInLine e un System.Drawing.Rectangle in Line che fornisce le coordinate pixel di quella linea nell’immagine di origine.

foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
    Console.WriteLine($"{line.Line}: {line.TextInLine}");
}

Raggruppamento di più file

OcrInput può contenere più di un file. OcrOutput — il valore restituito da Recognize() — è un elenco di RecognitionResult, uno per immagine o pagina PDF, conservando l’ordine originale in cui i file sono stati aggiunti.

using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");
OcrOutput output = api.Recognize(input);

Avvio rapido

dotnet add package Aspose.OCR.FOSS

L’esempio seguente riconosce ogni pagina di un PDF con AsposeOcr.Recognize() e stampa il testo di ciascuna pagina insieme alle sue linee riconosciute individualmente e alle loro coordinate 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}");
    }
}

Gli unici tipi di input supportati sono InputType.SingleImage e InputType.PDF; qualsiasi altro tipo di input genera NotSupportedException.


Open Source e licenze

Aspose.OCR FOSS per .NET è rilasciato sotto licenza MIT. Può essere usato, modificato e ridistribuito — anche in prodotti commerciali — senza costi di licenza aggiuntivi. Il codice sorgente è disponibile su GitHub.


Iniziare

Risorse correlate