Panoramica delle funzionalità

Panoramica delle funzionalità

Panoramica delle funzionalità

Aspose.OMR FOSS per Python copre tre livelli: progettare un modello, generare un’immagine della pagina e un descrittore da essa, e riconoscere i segni da una copia scannerizzata.


Progettazione del modello

Un modello è un albero di configurazioni di elementi radicato in TemplateConfig. Gli elementi di domanda includono ChoiceBoxConfig (bolle di opzione fisse), CheckBoxConfig (caselle di spunta a segno libero), GridConfig e CompositeGridConfig (matrici di cifre/simboli fuse in un unico valore), e AnswerSheetConfig (matrici numerate di bolle di risposta). I contenitori di layout (BlockConfig, ContainerConfig, PositionedBlockConfig) controllano bordi, colonne e posizionamento assoluto. Lo stesso albero può essere costruito da un DSL di markup testuale compatto invece di oggetti Python.

Generation

OmrEngine.Generate() rende un modello in un GenerationResult — un’immagine della pagina più un descrittore .omr JSON. MemoryGenerationResult espone lo stesso output come flussi in memoria tramite GetImages()/GetOmr() per gli chiamanti che non vogliono toccare il filesystem.

Recognition

TemplateProcessor.Recognize() legge un’immagine scansionata rispetto al modello da cui è stata creata. RecognizeFolder() esegue il batch su ogni immagine in una cartella. Recalculate() ricalcola un risultato già riconosciuto con una soglia diversa senza rileggerne l’immagine di origine. La correzione di inclinazione utilizza i segni di riferimento d’angolo (ReferencePointsSettings).

Esportazione del risultato

RecognitionResult esporta in CSV, JSON o XML, ciascuno con una variante di stream in memoria corrispondente (GetCsvAsStream, GetJsonAsStream, GetXmlAsStream).

Enum del sistema di scrittura e overflow

Arabic, Hebrew, Persian, Urdu e Bengali sistemi di scrittura (insieme a Western), e gli enum LongWordHandling/OverflowAction, sono presenti e vengono analizzati correttamente per la fedeltà API con la superficie Aspose.OMR. Nessuno di essi è ancora rispettato dal motore di rendering di questa versione — il rendering è solo LTR/Western, e il comportamento di overflow non è ancora configurabile. Entrambi sono tracciati nella roadmap upstream.


Suggerimenti e migliori pratiche

  • Usa il DSL di markup per moduli semplici; passa all’albero TemplateConfig basato sul codice quando hai bisogno di un controllo programmatico sul posizionamento degli elementi.
  • FormValidationLogic.Exception mostra immediatamente le violazioni di multi-selezione invece di ignorarle silenziosamente, per le domande con multi-selezione disabilitata.
  • Preferisci RecognizeFolder() anziché eseguire in loop le chiamate Recognize() quando elabori un batch di scansioni.
  • Chiama Recalculate() invece di rifare la scansione quando devi solo provare una soglia di riconoscimento diversa.

Problemi comuni

ProblemaCausaCorrezione
SaveAsPdf() solleva NotImplementedErrorL’esportazione PDF non è implementata in questa versioneUsa Save() per l’output PNG, oppure esporta i risultati del riconoscimento come CSV/JSON/XML
Una risposta multi-selezione non consentita viene accettata silenziosamenteIl valore predefinito FormValidationLogic.Ignore non solleva in caso di violazioniPassa FormValidationLogic.Exception a GetTemplateProcessor() e assicurati che il Multiselect della domanda sia disabilitato

FAQ

La libreria richiede una GUI o hardware OMR esterno?

No. Funziona interamente a partire da file immagine (scansioni o foto) usando numpy, opencv-python e Pillow.

Posso generare un PDF del template?

Non in questa versione — GenerationResult.SaveAsPdf() e MemoryGenerationResult.GetPDF() sollevano entrambi NotImplementedError. Usa l’output PNG da Save()/GetImages() invece.

Come posso elaborare molti moduli scansionati contemporaneamente?

Usa TemplateProcessor.RecognizeFolder(folderPath, recognitionThreshold) per riconoscere ogni immagine in una cartella in un’unica chiamata.


API Reference Riepilogo

Classe/MetodoDescrizione
OmrEngine.GenerateRende un template in un’immagine di pagina + descrittore .omr
OmrEngine.GetTemplateProcessorCarica un descrittore .omr per il riconoscimento
TemplateProcessor.RecognizeRiconosce un’immagine scansionata
TemplateProcessor.RecognizeFolderRiconosce ogni immagine in una cartella
TemplateProcessor.RecalculateRivaluta un risultato con una nuova soglia
RecognitionResult.GetCsv / GetJson / GetXmlEsporta i risultati del riconoscimento

Vedi anche

 Italiano