Wie man mit dem OMR-Modell in Python arbeitet

Wie man mit dem OMR-Modell in Python arbeitet

Ein RecognitionResult enthält ein IOmrElement pro erkannter Frage. Dieser Leitfaden zeigt, wie man erkannte Antworten liest und exportiert.

Schritt-für-Schritt-Anleitung

Schritt 1: Paket installieren

git clone https://github.com/aspose-omr-foss/Aspose.OMR-FOSS-for-Python.git
cd Aspose.OMR-FOSS-for-Python
pip install -e .
python -c "import omr; print('Aspose.OMR FOSS for Python is ready.')"

Schritt 2: Erforderliche Klassen importieren

from omr.api import OmrEngine, FormValidationLogic

Schritt 3: Scan erkennen

engine = OmrEngine()
processor = engine.GetTemplateProcessor("out/final-exam.omr", FormValidationLogic.Ignore)
result = processor.Recognize("scan.png")

Schritt 4: Einzelne Antworten lesen

Jeder Eintrag in result.OmrElements implementiert IOmrElement: QuestionName identifiziert die Frage und GetAnswer() gibt ihren erkannten Wert zurück (ein leerer String, wenn nichts die Erkennungsschwelle überschritten hat).

for element in result.OmrElements:
    print(element.QuestionName, element.GetAnswer())

Schritt 5: Gesamtes Ergebnis exportieren

print(result.GetCsv())      # also GetJson() / GetXml()

Häufige Probleme und Lösungen

GetAnswer() gibt einen leeren String für ein Zeichen zurück, das ich auf dem Scan deutlich sehen kann. Der Erkennungsschwellenwert könnte für die Dunkelheit dieses Zeichens zu streng sein. Pass -100 to Recognize() für die Auto-Kalibrierung, oder call Recalculate() mit einem lockereren Schwellenwert beim vorhandenen Ergebnis.

Ich benötige die Rohantwortdaten in einem anderen Format als CSV/JSON/XML. Iterate result.OmrElements selbst und bauen Sie jede gewünschte Struktur daraus IOmrElement’s GetAnswer()/GetCsv().

Häufig gestellte Fragen

Liest Recalculate() das gescannte Bild erneut ein?

Nein — es bewertet das bereits erkannte Ergebnis mit einem neuen Schwellenwert neu.

Wofür steht QuestionName?

Das Name, das Sie am Vorlagenelement (z. B. AnswerSheetConfig.Name oder ChoiceBoxConfig.Name) festgelegt haben, gegenüber dem das Markenzeichen des Elements erkannt wurde.

Kann ich nur einige Elemente statt des gesamten Ergebnisses exportieren?

RecognitionResults Exportmethoden decken das vollständige Ergebnis ab; filtern Sie OmrElements zuerst selbst, wenn Sie eine Teilmenge benötigen.

Siehe auch

 Deutsch