כיצד לעבוד עם API ב-Python

כיצד לעבוד עם API ב-Python

Aspose.OMR FOSS עבור Python הציבורי API (omr.api) הוא קטן במכוון: OmrEngine, TemplateProcessor, ImageCollection, ו-FormValidationLogic. מדריך זה מראה איך הם משתלבים יחד בתהליך של יצירה והכרה.

מדריך שלב-אחר-שלב

צעד 1: התקנת החבילה

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.')"

צעד 2: ייבוא המחלקות הדרושות

from omr.api import OmrEngine, FormValidationLogic

צעד 3: יצירה ושמירת תבנית

engine = OmrEngine()
gen = engine.Generate("final-exam.txt")
gen.Save("out", "final-exam")

שלב 4: טען את התבנית לזיהוי

החלף את FormValidationLogic.Exception במקום Ignore ברירת המחדל אם אתה רוצה שהפרה תיווצר עבור שאלות שבהן בחירה מרובה מושבתת, במקום להתקבל בשקט.

processor = engine.GetTemplateProcessor("out/final-exam.omr", FormValidationLogic.Exception)

שלב 5: זיהוי וייצוא

result = processor.Recognize("scan.png")
print(result.GetCsv())

בעיות נפוצות ופתרונות

FormValidationLogic.Exception לעולם לא נזרק, אפילו על שאלה מרובת סימונים. הבדיקה מתרחשת רק עבור שאלה עם Multiselect מושבת; GlobalPageSettings.Multiselect בברירת מחדל הוא מופעל, לכן יש לוודא שהוא מכובה במפורש עבור השאלה שאתה מצפה שתהיה בחירה יחידה.

אני צריך לזהות הרבה סריקות בבת אחת. השתמש ב TemplateProcessor.RecognizeFolder(folderPath, recognitionThreshold) במקום לקרוא ל Recognize() בלולאה.

רשמתי תמונה תחת שם שכבר היה בשימוש. ImageCollection.Add אינו משכתב — בדוק Contains(name) קודם, או השתמש בשם ייחודי לכל תמונה.

שאלות נפוצות

האם OmrEngine בטוח לשימוש חוזר במגוון תבניות?

כן — הוא ללא מצב.

איך ניתן לחשב מחדש תוצאה עם סף שונה מבלי לבצע סריקה מחדש?

קרא ל-TemplateProcessor.Recalculate(result, recognitionThreshold).

איך ניתן לשלב תמונה בזיכרון לתוך סימון במקום לקרוא אותה מהדיסק?

רשום אותה עם ImageCollection.Add(name, image_bytes), ואז הפנה אליה בסימון כ-?image=<name>.

ראה גם

 עברית