Übersicht der Funktionen

Übersicht der Funktionen

Übersicht der Funktionen

Aspose.OMR FOSS für Python umfasst drei Ebenen: Entwerfen einer Vorlage, Erzeugen eines Seitenbildes und eines Deskriptors daraus sowie das Erkennen von Markierungen aus einer gescannten Kopie.


Vorlagendesign

Eine Vorlage ist ein Baum von Elementkonfigurationen, dessen Wurzel TemplateConfig ist. Fragetypen umfassen ChoiceBoxConfig (feste Optionsblasen), CheckBoxConfig (beliebige Markierungs-Kästchen), GridConfig und CompositeGridConfig (Ziffern-/Symbol-Matrizen, zu einem Wert zusammengeführt), und AnswerSheetConfig (nummerierte Antwort-Blasen-Matrizen). Layout-Container (BlockConfig, ContainerConfig, PositionedBlockConfig) steuern Rahmen, Spalten und absolute Positionierung. Der gleiche Baum kann aus einer kompakten Text-Markup-DSL anstelle von Python-Objekten erstellt werden.

Generation

OmrEngine.Generate() rendert eine Vorlage zu einem GenerationResult — einem Seitenbild plus einem .omr Deskriptor JSON. MemoryGenerationResult stellt dieselbe Ausgabe als In-Memory-Streams über GetImages()/GetOmr() für Aufrufer bereit, die das Dateisystem nicht berühren wollen.

Recognition

TemplateProcessor.Recognize() liest ein gescanntes Bild gegen die Vorlage, aus der es erstellt wurde. RecognizeFolder() stapelt das über jedes Bild in einem Ordner. Recalculate() bewertet ein bereits erkanntes Ergebnis mit einem anderen Schwellenwert neu, ohne das Quellbild erneut zu lesen. Die Schräglagenkorrektur verwendet Eckreferenzmarken (ReferencePointsSettings).

Ergebnisexport

RecognitionResult exportiert nach CSV, JSON oder XML, jeweils mit einer passenden In-Memory-Stream-Variante (GetCsvAsStream, GetJsonAsStream, GetXmlAsStream).

Schriftsystem- und Überlauf-Enums

Arabic, Hebrew, Persian, Urdu und Bengali Schriftsysteme (neben Western) sowie die LongWordHandling/OverflowAction-Enums sind vorhanden und werden korrekt geparst für API-Treue mit der Aspose.OMR-Oberfläche. Keines davon wird in der Rendering-Engine dieser Version noch berücksichtigt — das Rendering ist ausschließlich LTR/Westlich, und das Überlaufverhalten ist noch nicht konfigurierbar. Beide werden in der Roadmap des Upstreams verfolgt.


Tipps und bewährte Verfahren

  • Verwenden Sie die Markup-DSL für einfache Formulare; wechseln Sie zum code-first TemplateConfig-Baum, wenn Sie programmgesteuerte Kontrolle über die Platzierung von Elementen benötigen.
  • FormValidationLogic.Exception zeigt Verstöße gegen Mehrfachauswahl sofort an, anstatt sie stillschweigend zu ignorieren, bei Fragen, bei denen Mehrfachauswahl deaktiviert ist.
  • Bevorzuge RecognizeFolder() gegenüber wiederholten Recognize()-Aufrufen, wenn du einen Stapel von Scans verarbeitest.
  • Rufe Recalculate() auf, anstatt erneut zu scannen, wenn du nur eine andere Erkennungsschwelle ausprobieren musst.

Häufige Probleme

ProblemUrsacheLösung
SaveAsPdf() wirft NotImplementedErrorPDF-Export ist in dieser Version nicht implementiertVerwenden Sie Save() für PNG-Ausgabe, oder exportieren Sie die Erkennungsergebnisse als CSV/JSON/XML
Eine nicht zulässige Mehrfachauswahl-Antwort wird stillschweigend akzeptiertStandard FormValidationLogic.Ignore wirft bei Verstößen nichtÜbergebe FormValidationLogic.Exception an GetTemplateProcessor() und stelle sicher, dass das Multiselect der Frage deaktiviert ist

FAQ

Benötigt die Bibliothek eine GUI oder externe OMR-Hardware?

Nein. Es arbeitet vollständig mit Bilddateien (Scans oder Fotos) unter Verwendung von numpy, opencv-python und Pillow.

Kann ich ein PDF der Vorlage erzeugen?

Nicht in dieser Version — GenerationResult.SaveAsPdf() und MemoryGenerationResult.GetPDF() werfen beide NotImplementedError. Verwende stattdessen die PNG-Ausgabe von Save()/GetImages().

Wie verarbeite ich viele gescannte Formulare auf einmal?

Verwenden Sie TemplateProcessor.RecognizeFolder(folderPath, recognitionThreshold), um jedes Bild in einem Ordner in einem Aufruf zu erkennen.


API Reference Zusammenfassung

Klasse/MethodeBeschreibung
OmrEngine.GenerateRendert eine Vorlage zu einem Seitenbild + .omr-Deskriptor
OmrEngine.GetTemplateProcessorLädt einen .omr-Deskriptor zur Erkennung
TemplateProcessor.RecognizeErkennt ein gescanntes Bild
TemplateProcessor.RecognizeFolderErkennt jedes Bild in einem Ordner
TemplateProcessor.RecalculateBewertet ein Ergebnis mit einem neuen Schwellenwert neu
RecognitionResult.GetCsv / GetJson / GetXmlExportiert Erkennungsergebnisse

Siehe auch

 Deutsch