Overzicht van functies
Functieoverzicht
Aspose.OMR FOSS voor Python omvat drie lagen: het ontwerpen van een sjabloon, het genereren van een pagina-afbeelding en descriptor daarvan, en het herkennen van markeringen van een gescande kopie.
Sjabloonontwerp
Een sjabloon is een boom van element-configuraties met wortel bij TemplateConfig. Vraag-elementen omvatten ChoiceBoxConfig (vaste optie-bubbels), CheckBoxConfig (any-mark selectievakjes), GridConfig en CompositeGridConfig (cijfer-/symbool-matrices samengevoegd tot één waarde), en AnswerSheetConfig (genummerde antwoord-bubbel-matrices). Layout-containers (BlockConfig, ContainerConfig, PositionedBlockConfig) regelen randen, kolommen en absolute positionering. Dezelfde boom kan worden opgebouwd vanuit een compacte tekst-markup DSL in plaats van Python-objecten.
Generation
OmrEngine.Generate() render een sjabloon naar een GenerationResult — een pagina-afbeelding plus een .omr descriptor JSON. MemoryGenerationResult biedt dezelfde output aan als in-memory streams via GetImages()/GetOmr() voor aanroepers die het bestandssysteem niet willen aanraken.
Recognition
TemplateProcessor.Recognize() leest één gescand beeld ten opzichte van de sjabloon waaruit het is gemaakt. RecognizeFolder() verwerkt dat in batches over elk beeld in een map. Recalculate() herwaardeert een al herkend resultaat met een andere drempel zonder het bronbeeld opnieuw te lezen. De scheefcorrigering maakt gebruik van hoekreferentiemarkeringen (ReferencePointsSettings).
Resultaatexport
RecognitionResult exporteert naar CSV, JSON, of XML, elk met een overeenkomstige in-memory-stream-variant (GetCsvAsStream, GetJsonAsStream, GetXmlAsStream).
Schrijfsysteem- en overflow-enumeraties
Arabic, Hebrew, Persian, Urdu en Bengali schrijfsystemen (naast Western), en de LongWordHandling/OverflowAction enums, zijn aanwezig en worden correct geparseerd voor API fidelity met het Aspose.OMR oppervlak. Geen van beide wordt nog gerespecteerd door de render-engine van deze release — renderen is alleen LTR/Western, en overflow-gedrag is nog niet configureerbaar. Beide staan op de upstream-roadmap.
Tips en best practices
- Gebruik de markup-DSL voor eenvoudige formulieren; schakel over naar de code-first
TemplateConfigboom wanneer je programmatische controle over de plaatsing van elementen nodig hebt. FormValidationLogic.Exceptiontoont multi-select-overtredingen direct in plaats van ze stilletjes te negeren, voor vragen waarbij multi-select is uitgeschakeld.- Geef de voorkeur aan
RecognizeFolder()boven het zelf herhalen vanRecognize()-aanroepen bij het verwerken van een batch scans. - Roep
Recalculate()aan in plaats van opnieuw te scannen wanneer je alleen een andere herkenningsdrempel wilt proberen.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
SaveAsPdf() werpt NotImplementedError | PDF-export is niet geïmplementeerd in deze release | Gebruik Save() voor PNG-uitvoer, of exporteer herkenningsresultaten als CSV/JSON/XML |
| Een niet-toegestaan multi-select antwoord wordt stilzwijgend geaccepteerd | Standaard FormValidationLogic.Ignore werpt niet bij overtredingen | Geef FormValidationLogic.Exception door aan GetTemplateProcessor(), en zorg ervoor dat de Multiselect van de vraag is uitgeschakeld |
FAQ
Vereist de bibliotheek een GUI of externe OMR-hardware?
Nee. Het werkt volledig vanuit afbeeldingsbestanden (scans of foto’s) met behulp van numpy, opencv-python en Pillow.
Kan ik een PDF van de template genereren?
Niet in deze release — GenerationResult.SaveAsPdf() en MemoryGenerationResult.GetPDF() geven beide NotImplementedError terug. Gebruik in plaats daarvan de PNG-uitvoer van Save()/GetImages().
Hoe verwerk ik veel gescande formulieren tegelijk?
Gebruik TemplateProcessor.RecognizeFolder(folderPath, recognitionThreshold) om elke afbeelding in een map in één oproep te herkennen.
API Reference Samenvatting
| Klasse/Methode | Beschrijving |
|---|---|
OmrEngine.Generate | Rendert een template naar een pagina-afbeelding + .omr descriptor |
OmrEngine.GetTemplateProcessor | Laadt een .omr descriptor voor herkenning |
TemplateProcessor.Recognize | Herkent één gescande afbeelding |
TemplateProcessor.RecognizeFolder | Herkent elke afbeelding in een map |
TemplateProcessor.Recalculate | Herwaardeert een resultaat met een nieuwe drempel |
RecognitionResult.GetCsv / GetJson / GetXml | Exporteert herkenningsresultaten |