Nucleu API

API de bază

Această pagină acoperă ciclul de viață al obiectelor și comportamentul de excepție al celor patru tipuri de bază: AsposeOcr, OcrInput, OcrOutput și RecognitionResult.


Ciclul de viață al OcrInput

OcrInput implementează IDisposable și ar trebui creat într-o instrucțiune using. Constructorul său primește un InputType (InputType.SingleImage sau InputType.PDF), și OcrInput.Add(string) adaugă în coadă un traseu de fișier la un moment dat — aceeași instanță OcrInput poate conține mai multe fișiere de același tip de intrare.

using Aspose.OCR;

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

Recunoașterea și citirea OcrOutput

AsposeOcr.Recognize(OcrInput) returnează un OcrOutput, care este un List<RecognitionResult> — indexabil ca orice listă, cu un RecognitionResult pe imagine (pentru InputType.SingleImage, unul pe fișier adăugat) sau pe pagină PDF (pentru InputType.PDF).

var api = new AsposeOcr();
OcrOutput output = api.Recognize(input);
RecognitionResult first = output[0];

RecognitionResult și tipul LinesResult imbricat

RecognitionResult.LinesResult este o clasă imbricată — referiți-vă la ea ca RecognitionResult.LinesResult, nu ca un tip independent. Fiecare RecognitionResult expune:

  • RecognitionText — textul recunoscut complet pentru acea imagine sau pagină, cu liniile unite prin întreruperi de linie.
  • RecognitionLinesResult — un List<RecognitionResult.LinesResult>, o intrare pentru fiecare linie de text detectată, fiecare cu TextInLine (textul liniei) și Line (un System.Drawing.Rectangle care oferă coordonatele în pixeli ale acelei linii în imaginea sursă).
RecognitionResult result = output[0];
Console.WriteLine(result.RecognitionText);

foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
    System.Drawing.Rectangle bounds = line.Line;
    Console.WriteLine($"x={bounds.X}, y={bounds.Y}: {line.TextInLine}");
}

Excepții

AsposeOcr.Recognize(OcrInput) validează intrarea înainte de a rula recunoașterea:

ConditionException
input este nullArgumentNullException
input are InputType nu este SingleImage sau PDFNotSupportedException
O cale adăugată prin OcrInput.Add() nu există pe discFileNotFoundException

Aceste verificări rulează înainte de orice inferență a modelului, astfel încât o intrare incorectă eșuează imediat, în loc de după un pas parțial de recunoaștere.


Sfaturi și cele mai bune practici

  • OcrOutput este gol (Count == 0) dacă OcrInput nu are fișiere adăugate — verificați Count înainte de indexare.
  • RecognitionResult.LinesResult este imbricat în RecognitionResult; numele tipului de nivel superior LinesResult singur nu este un tip rezolvabil în afara acelei imbricări.

Probleme comune

ProblemăCauzăRemediere
ArgumentNullException pe Recognize()null a fost transmis în loc de un OcrInputConstruiește întotdeauna un OcrInput înainte de a apela Recognize()
NotSupportedException pe Recognize()OcrInput a fost construit cu un tip de intrare diferit de SingleImage/PDFDoar InputType.SingleImage și InputType.PDF sunt valide
FileNotFoundException pe Recognize()Calea pusă în coadă nu existăValidați căile fișierelor înainte de a apela OcrInput.Add()

FAQ

Este RecognitionResult.LinesResult propria sa clasă de nivel superior?

Nu — este imbricat în interiorul RecognitionResult. Faceţi referire la el ca RecognitionResult.LinesResult.

Asigură OcrOutput ordinea paginilor pentru PDF-uri?

Da — pentru InputType.PDF, OcrOutput returnează un RecognitionResult pe pagină în ordine sursă.

Ce se întâmplă dacă apelez Recognize() cu un OcrInput gol?

Returnează un OcrOutput cu Count == 0 în loc să arunce.


API Reference Rezumat

Clasă/MetodăDescriere:
AsposeOcr.Recognize(OcrInput)Validează și recunoaște; aruncă ArgumentNullException, NotSupportedException sau FileNotFoundException în caz de intrare invalidă
OcrInput.OcrInput(InputType)Construiește un container de intrare pentru un singur tip de intrare
OcrInput.Add(string)Adaugă în coadă o cale de fișier
OcrInput.Dispose()Eliberează resurse (prin IDisposable)
OcrOutputList<RecognitionResult> returnat de Recognize()
RecognitionResult.RecognitionTextText complet recunoscut pentru o imagine/pagină
RecognitionResult.RecognitionLinesResultList<RecognitionResult.LinesResult>
RecognitionResult.LinesResult.TextInLineText recunoscut pentru o linie
RecognitionResult.LinesResult.LineSystem.Drawing.Rectangle bounding box pentru o linie

Vezi și:

 Română