Översikt över funktioner

Översikt över funktioner

Funktionsöversikt

Aspose.OMR FOSS för Python täcker tre lager: att designa en mall, generera en sidbild och beskrivning från den, samt känna igen markeringar från en skannad kopia.


Malldesign

En mall är ett träd av elementkonfigurationer rotat vid TemplateConfig. Frågeelement inkluderar ChoiceBoxConfig (fast alternativbubblor), CheckBoxConfig (valfri-markering kryssrutor), GridConfig och CompositeGridConfig (siffra-/symbolmatriser sammanslagna till ett värde), och AnswerSheetConfig (numrerade svarbubbla-matriser). Layoutbehållare (BlockConfig, ContainerConfig, PositionedBlockConfig) styr kanter, kolumner och absolut positionering. Samma träd kan byggas från ett kompakt text-markup DSL istället för Python-objekt.

Generation

OmrEngine.Generate() renderar en mall till en GenerationResult — en sidbild plus en .omr beskrivare JSON. MemoryGenerationResult exponerar samma utdata som minnesströmmar via GetImages()/GetOmr() för anropare som inte vill röra filsystemet.

Recognition

TemplateProcessor.Recognize() läser en skannad bild mot den mall den skapades från. RecognizeFolder() batchar det över varje bild i en mapp. Recalculate() omvärderar ett redan igenkänt resultat med ett annat tröskelvärde utan att läsa om källbilden. De-skew-korrigering använder hörnreferensmarkeringar (ReferencePointsSettings).

Resultatexport

RecognitionResult exporterar till CSV, JSON eller XML, var och en med en motsvarande variant i minnesström (GetCsvAsStream, GetJsonAsStream, GetXmlAsStream).

Skrivsystem och Översvämningsenum

Arabic, Hebrew, Persian, Urdu och Bengali skriftsystem (tillsammans med Western), samt LongWordHandling/OverflowAction-enum, finns och parsas korrekt för API-fidelitet med Aspose.OMR-ytan. Ingen av dem stöds ännu av denna releases renderingsmotor — rendering är LTR/Western-only, och översvämningsbeteende är ännu inte konfigurerbart. Båda följs upp i den överordnade färdplanen.


Tips och bästa praxis

  • Använd markup-DSL för enkla formulär; byt till den kodförst TemplateConfig-trädet när du behöver programmatisk kontroll över elementplacering.
  • FormValidationLogic.Exception visar omedelbart överträdelser av flervalsval istället för att tyst ignorera dem, för frågor där flervalsval är inaktiverat.
  • Föredra RecognizeFolder() framför att själv loopa Recognize()-anrop när du bearbetar en batch av skanningar.
  • Anropa Recalculate() istället för att skanna om när du bara behöver testa ett annat igenkänningströskelvärde.

Vanliga problem

ProblemOrsakÅtgärd
SaveAsPdf() genererar NotImplementedErrorPDF-export är inte implementerad i den här versionenAnvänd Save() för PNG-utdata, eller exportera igenkänningsresultat som CSV/JSON/XML
Ett otillåtet flervalsalternativ accepteras tystStandard FormValidationLogic.Ignore ger inte fel vid överträdelserSkicka FormValidationLogic.Exception till GetTemplateProcessor(), och se till att frågans Multiselect är inaktiverad

FAQ

Kräver biblioteket någon GUI eller extern OMR-hårdvara?

Nej. Det fungerar helt och hållet från bildfiler (skanningar eller foton) med hjälp av numpy, opencv-python och Pillow.

Kan jag generera en PDF av mallen?

Inte i den här versionen — GenerationResult.SaveAsPdf() och MemoryGenerationResult.GetPDF() kastar båda NotImplementedError. Använd PNG-utdata från Save()/GetImages() istället.

Hur bearbetar jag många skannade formulär på en gång?

Använd TemplateProcessor.RecognizeFolder(folderPath, recognitionThreshold) för att känna igen varje bild i en mapp i ett anrop.


API Reference Sammanfattning

Klass/MetodBeskrivning
OmrEngine.GenerateRenderar en mall till en sidavbild + .omr beskrivning
OmrEngine.GetTemplateProcessorLaddar en .omr beskrivning för igenkänning
TemplateProcessor.RecognizeKänner igen en skannad bild
TemplateProcessor.RecognizeFolderKänner igen varje bild i en mapp
TemplateProcessor.RecalculateOmvärderar ett resultat med ett nytt tröskelvärde
RecognitionResult.GetCsv / GetJson / GetXmlExporterar igenkänningsresultat

Se även

 Svenska