Wprowadzenie
Aspose.OCR FOSS for .NET jest nową otwarto-źródłową biblioteką C# służącą do wykrywania i rozpoznawania tekstu na obrazach rastrowych i dokumentach PDF. Została stworzona dla programistów .NET, którzy potrzebują rozpoznawania tekstu bez zależności od zewnętrznej usługi OCR, chmury API lub jakiegokolwiek własnościowego środowiska uruchomieniowego.
Biblioteka jest licencjonowana na licencji MIT i nie ma zewnętrznej zależności OCR: cały proces rozpoznawania — wykrywanie linii tekstu, doprecyzowanie regionu i rozpoznawanie tekstu łacińskiego — działa lokalnie przy użyciu trzech modeli ONNX osadzonych bezpośrednio w zestawie i wykonywanych na CPU za pośrednictwem Microsoft.ML.OnnxRuntime. Nie jest wymagana żadna operacja pobierania modelu ani wywołanie sieciowe w czasie działania.
Co zawiera
Rozpoznawanie obrazów i plików PDF za pomocą jednego punktu wejścia
AsposeOcr.Recognize() jest jedynym punktem wejścia dla obu rodzajów wejścia. OcrInput jest budowany z InputType.SingleImage lub InputType.PDF, a jedna lub więcej ścieżek plików jest kolejkowana przy użyciu OcrInput.Add(). Dla InputType.PDF każda strona jest rozpoznawana i zwracana w kolejności źródłowej.
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);
Tekst na poziomie linii i współrzędne pikseli
Każdy RecognitionResult zwraca pełny tekst strony za pomocą RecognitionText, oraz poszczególne rozpoznane linie za pomocą RecognitionLinesResult — listę wpisów RecognitionResult.LinesResult, z których każdy udostępnia TextInLine i System.Drawing.Rectangle w Line, podające współrzędne pikseli tej linii w obrazie źródłowym.
foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
Console.WriteLine($"{line.Line}: {line.TextInLine}");
}
Przetwarzanie wielu plików
OcrInput może zawierać więcej niż jeden plik. OcrOutput — wartość zwracana przez Recognize() — jest listą RecognitionResult, po jednej na każdy obraz lub stronę PDF, zachowując pierwotną kolejność dodawania plików.
using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");
OcrOutput output = api.Recognize(input);
Szybki start
dotnet add package Aspose.OCR.FOSSPoniższy przykład rozpoznaje każdą stronę pliku PDF przy użyciu AsposeOcr.Recognize() i wypisuje tekst każdej strony wraz z jej poszczególnymi rozpoznanymi liniami oraz ich współrzędnymi pikseli.
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}");
}
}
Jedynymi obsługiwanymi typami wejściowymi są InputType.SingleImage i InputType.PDF; każdy inny typ wejścia generuje NotSupportedException.
Open Source i licencjonowanie
Aspose.OCR FOSS dla .NET jest udostępniony na licencji MIT. Może być używany, modyfikowany i rozpowszechniany — w tym w produktach komercyjnych — bez dodatkowych opłat licencyjnych. Kod źródłowy jest dostępny na GitHub.