Kärna API

Kärn-API

Den här sidan täcker objektets livscykel och undantagsbeteende för de fyra kärntyperna: AsposeOcr, OcrInput, OcrOutput och RecognitionResult.


OcrInput livscykel

OcrInput implementerar IDisposable och bör skapas i ett using-uttalande. Dess konstruktor tar emot en InputType (InputType.SingleImage eller InputType.PDF), och OcrInput.Add(string) köar en filväg åt gången — samma OcrInput-instans kan innehålla flera filer av samma inmatningstyp.

using Aspose.OCR;

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

Identifiera och läsa OcrOutput

AsposeOcr.Recognize(OcrInput) returnerar en OcrOutput, vilket är en List<RecognitionResult> — indexerbar som en vanlig lista, med ett RecognitionResult per bild (för InputType.SingleImage, ett per tillagd fil) eller per PDF-sida (för InputType.PDF).

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

RecognitionResult och den nästlade LinesResult-typen

RecognitionResult.LinesResult är en nästlad klass — referera till den som RecognitionResult.LinesResult, inte som en fristående typ. Varje RecognitionResult exponerar:

  • RecognitionText — den kompletta igenkända texten för den bilden eller sidan, med rader sammanfogade med radbrytningar.
  • RecognitionLinesResult — en List<RecognitionResult.LinesResult>, ett objekt per upptäckt textrad, var och en med TextInLine (radens text) och Line (en System.Drawing.Rectangle som ger radens pixelkoordinater i källbilden).
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}");
}

Undantag

AsposeOcr.Recognize(OcrInput) validerar sin indata innan igenkänning körs:

ConditionException
input är nullArgumentNullException
input’s InputType är inte SingleImage eller PDFNotSupportedException
En sökväg som lagts till via OcrInput.Add() finns inte på diskenFileNotFoundException

Dessa kontroller körs innan någon modellinferens, så en felaktig indata misslyckas omedelbart istället för efter ett partiellt igenkänningspass.


Tips och bästa praxis

  • OcrOutput är tom (Count == 0) om OcrInput inte har några filer tillagda — kontrollera Count innan indexering.
  • RecognitionResult.LinesResult är inbäddad i RecognitionResult; top-nivå typnamnet LinesResult ensam är inte en lösbar typ utanför den inbäddningen.

Vanliga problem

ProblemOrsakFixa
ArgumentNullException på Recognize()null skickades istället för en OcrInputKonstruera alltid ett OcrInput innan du anropar Recognize()
NotSupportedException på Recognize()OcrInput konstruerades med en indatatyp som inte var SingleImage/PDFEndast InputType.SingleImage och InputType.PDF är giltiga
FileNotFoundException på Recognize()En köad sökväg existerar inteValidera filsökvägar innan du anropar OcrInput.Add()

FAQ

Är RecognitionResult.LinesResult sin egen topnivåklass?

Nej — den är inbäddad i RecognitionResult. Referera till den som RecognitionResult.LinesResult.

Garantiar OcrOutput sidordning för PDF-filer?

Ja — för InputType.PDF returnerar OcrOutput en RecognitionResult per sida i källordning.

Vad händer om jag anropar Recognize() med en tom OcrInput?

Den returnerar ett OcrOutput med Count == 0 snarare än att kasta ett undantag.


API Reference Sammanfattning

Klass/MetodBeskrivning
AsposeOcr.Recognize(OcrInput)Validerar och känner igen; kastar ArgumentNullException, NotSupportedException eller FileNotFoundException vid ogiltig inmatning
OcrInput.OcrInput(InputType)Skapar en inmatningsbehållare för en inmatningstyp
OcrInput.Add(string)Köar en filsökväg
OcrInput.Dispose()Frigör resurser (via IDisposable)
OcrOutputList<RecognitionResult> returnerad av Recognize()
RecognitionResult.RecognitionTextFullständig igenkänd text för en bild/sida
RecognitionResult.RecognitionLinesResultList<RecognitionResult.LinesResult>
RecognitionResult.LinesResult.TextInLineKänd text för en rad
RecognitionResult.LinesResult.LineSystem.Drawing.Rectangle bounding box för en rad

Se även

 Svenska