Nucleul API

Nucleul API

omr.api este suprafața mică cu care interacționează cea mai mare parte a codului: OmrEngine, TemplateProcessor, ImageCollection și enum-ul FormValidationLogic.


OmrEngine

OmrEngine este o fabrică fără stare. Generate(source, settings) acceptă o sursă markup-DSL sau un TemplateConfig tree și returnează un GenerationResult. GetTemplateProcessor(templateSource, validationLogic) încarcă un .omr file path salvat anterior și returnează un TemplateProcessor legat; o sursă de flux, în schimb, primește un argument de codare a textului înainte de logica de validare.

from omr.api import OmrEngine, FormValidationLogic

engine = OmrEngine()
gen = engine.Generate("final-exam.txt")
gen.Save("out", "final-exam")
processor = engine.GetTemplateProcessor("out/final-exam.omr", FormValidationLogic.Ignore)

FormValidationLogic

Controlează comportamentul motorului când o regulă de validare a șablonului — cum ar fi o constrângere multi-select — este încălcată în timpul recunoașterii: Ignore (implicit) acceptă în tăcere încălcarea, Exception ridică, și undefined este valoarea zero a enum-ului. Verificarea se aplică doar întrebărilor ale căror Multiselect este dezactivat; GlobalPageSettings.Multiselect este implicit activat.

TemplateProcessor

Recognize(source, recognitionThreshold) recunoaște o singură imagine scanată. RecognizeFolder(folderPath, recognitionThreshold) recunoaște fiecare imagine dintr-un folder într-un singur apel. Recalculate(result, recognitionThreshold) recalculează un rezultat deja recunoscut cu un prag diferit, fără a reîncărca imaginea sursă.

ImageCollection

O hartă numai de adăugare, sensibilă la majuscule/minuscule, de la un nume la octeți brut de imagine. Add(name, image) înregistrează o imagine, Contains(name) verifică dacă un nume este deja înregistrat, Count raportează câte sunt înregistrate și as_dict() returnează harta de bază. Markup-ul poate face referire la o imagine înregistrată prin nume (?image=<name>) în loc de o cale de sistem de fișiere.

from omr.api import ImageCollection

images = ImageCollection()
with open("logo.png", "rb") as f:
    images.Add("logo.png", f.read())

Sfaturi și cele mai bune practici

  • Transmite FormValidationLogic.Exception în timpul dezvoltării pentru a afișa încălcările de selecție multiplă imediat, în loc să le ignore silențios (se declanșează doar pentru întrebările cu Multiselect dezactivat).
  • Recalculate() este mai ieftin decât re-scanearea — folosește-l când este necesar să se schimbe doar pragul de recunoaștere.
  • Numele ImageCollection sunt sensibile la majuscule/minuscule; înregistrarea aceluiași nume de două ori generează o eroare în loc să suprascrie silențios.
  • Generate() raportează majoritatea erorilor prin GenerationResult.ErrorCode/ErrorMessage în loc să le arunce — verifică ErrorCode înainte de a avea încredere într-un rezultat generat.

Probleme comune

ProblemăCauzăRemediere
Înregistrarea unei imagini de două ori ridicăImageCollection.Add nu permite nume duplicateVerificați mai întâi Contains(name), sau folosiți un nume unic pentru fiecare imagine
Un răspuns multi-select nepermis este acceptat în tăcereValoarea implicită FormValidationLogic.Ignore nu ridicăTransmite FormValidationLogic.Exception către GetTemplateProcessor() și asigură-te că Multiselect întrebării este dezactivat

FAQ

Este OmrEngine sigur să fie reutilizat în mai multe șabloane?

Da — este fără stare; fiecare Generate()/GetTemplateProcessor() apel este independent.

Cum recunosc un întreg dosar de scanări simultan?

Apelă TemplateProcessor.RecognizeFolder(folderPath, recognitionThreshold) în loc să iterezi Recognize() manual.


API Reference Rezumat

Clasă/MetodăDescriere:
OmrEngine.GenerateRedă un șablon într-o imagine de pagină + descriptor .omr
OmrEngine.GetTemplateProcessorÎncarcă un descriptor .omr pentru recunoaștere
TemplateProcessor.Recognize / RecognizeFolder / RecalculatePuncte de intrare pentru recunoaștere
ImageCollection.Add / Contains / as_dictRegistru de imagini în memorie pentru markup
FormValidationLogicEnum de comportament pentru încălcarea validării

Vezi și:

 Română