Introducere
Aspose.OCR FOSS pentru .NET este o nouă bibliotecă C# open-source pentru detectarea și recunoașterea textului în imagini raster și documente PDF. Este concepută pentru dezvoltatori .NET care au nevoie de recunoaștere a textului fără a depinde de un serviciu OCR extern, de un cloud API, sau de orice mediu de execuție proprietar.
Biblioteca este licențiată sub MIT și nu are nicio dependență externă OCR: întregul pipeline de recunoaștere — detectarea liniilor de text, rafinarea regiunilor și recunoașterea scriptului latin — rulează local prin trei modele ONNX încorporate direct în ansamblu și executate pe CPU prin Microsoft.ML.OnnxRuntime. Nu este necesar niciun pas de descărcare a modelului și niciun apel de rețea la rulare.
Ce este inclus
Recunoașterea imaginilor și PDF-urilor printr-un singur punct de intrare
AsposeOcr.Recognize() este singurul punct de intrare pentru ambele tipuri de intrare. Un OcrInput este construit cu InputType.SingleImage sau InputType.PDF, iar una sau mai multe căi de fișier sunt puse în coadă cu OcrInput.Add(). Pentru InputType.PDF, fiecare pagină este recunoscută și returnată în ordinea sursei.
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);
Text la nivel de linie și coordonate pixel
Fiecare RecognitionResult returnează textul complet al paginii prin RecognitionText și liniile recunoscute individual prin RecognitionLinesResult — o listă de intrări RecognitionResult.LinesResult, fiecare expunând TextInLine și un System.Drawing.Rectangle în Line care oferă coordonatele în pixeli ale acelei linii în imaginea sursă.
foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
Console.WriteLine($"{line.Line}: {line.TextInLine}");
}
Procesarea în lot a mai multor fișiere
OcrInput poate conține mai mult de un fișier. OcrOutput — valoarea returnată de Recognize() — este o listă de RecognitionResult, una pentru fiecare imagine sau pagină PDF, păstrând ordinea originală în care fișierele au fost adăugate.
using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");
OcrOutput output = api.Recognize(input);
Pornire rapidă
dotnet add package Aspose.OCR.FOSSExemplul de mai jos recunoaște fiecare pagină a unui PDF cu AsposeOcr.Recognize() și afișează textul fiecărei pagini împreună cu liniile sale recunoscute individual și coordonatele lor în pixeli.
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}");
}
}
Singurele tipuri de intrare suportate sunt InputType.SingleImage și InputType.PDF; orice alt tip de intrare aruncă NotSupportedException.
Open Source & Licențiere
Aspose.OCR FOSS pentru .NET este lansat sub licența MIT. Poate fi utilizat, modificat și redistribuit — inclusiv în produse comerciale — fără taxe suplimentare de licențiere. Codul sursă este disponibil pe GitHub.