סקירת תכונות

סקירת תכונות

Aspose.OMR קוד פתוח חופשי עבור Python מכסה שלושה שכבות: תכנון תבנית, יצירת תמונת עמוד ותיאור ממנו, והכרת סימנים מעותק סרוק.


תכנון תבנית

תבנית היא עץ של תצורות אלמנטים שמושרש ב-TemplateConfig. אלמנטים של שאלות כוללים ChoiceBoxConfig (בועות אפשרות קבועות), CheckBoxConfig (תיבות סימון עם כל סימן), GridConfig ו-CompositeGridConfig (מטריצות ספרות/סמלים ממוזגות לערך אחד), ו-AnswerSheetConfig (מטריצות בועות תשובה ממוספרות). מכולות פריסת (BlockConfig, ContainerConfig, PositionedBlockConfig) שולטות בגבולות, בעמודות ובמיקום מוחלט. ניתן לבנות את העץ עצמו משפת DSL קומפקטית של סימון טקסט במקום אובייקטים של Python.

Generation

OmrEngine.Generate() ממיר תבנית ל-GenerationResult — תמונת עמוד בתוספת מתאר .omr של JSON. MemoryGenerationResult חשוף את אותו פלט כזרמים בזיכרון באמצעות GetImages()/GetOmr() עבור קוראים שאינם רוצים לגעת במערכת הקבצים.

Recognition

TemplateProcessor.Recognize() קורא תמונה סרוקה אחת מול התבנית שנוצר ממנה. RecognizeFolder() מבצע עיבוד קבוצתי על כל תמונה בתיקייה. Recalculate() מחשב מחדש דירוג של תוצאה שכבר זוהתה בעזרת סף שונה מבלי לקרוא מחדש את תמונת המקור. תיקון הסטייה משתמש בסימני ייחוס בפינות (ReferencePointsSettings).

ייצוא תוצאה

RecognitionResult מייצא ל-CSV, JSON, או XML, כאשר לכל אחד יש גרסת זרם בזיכרון תואמת (GetCsvAsStream, GetJsonAsStream, GetXmlAsStream).

Enums של מערכת כתיבה והצפה

Arabic, Hebrew, Persian, Urdu, ו-Bengali מערכות כתיבה (לצד Western), וה-enums LongWordHandling/OverflowAction, קיימים ומפורשים כראוי ל-דיוק API עם משטח Aspose.OMR. אף אחד מהם עדיין לא מכובד על-ידי מנוע הרינדור של גרסה זו — הרינדור הוא רק LTR/Western, והתנהגות ההצפה עדיין לא ניתנת להגדרה. שניהם נעקבים במפת הדרכים של המקור.


טיפים ושיטות עבודה מומלצות

  • השתמש ב-DSL של סימון עבור טפסים פשוטים; עבור לעץ TemplateConfig מבוסס-קוד כאשר אתה צריך שליטה פרוגרמטית על מיקום האלמנטים.
  • FormValidationLogic.Exception מציג הפרות של בחירה מרובה מיד במקום להתעלם מהן בשקט, עבור שאלות שבהן בחירה מרובה מושבתת.
  • העדף RecognizeFolder() על פני לולאה של קריאות Recognize() בעצמך בעת עיבוד אצווה של סריקות.
  • קרא ל-Recalculate() במקום לסרוק מחדש כאשר אתה צריך רק לנסות סף זיהוי שונה.

בעיות נפוצות

בעיהסיבהתיקון
SaveAsPdf() מעלה NotImplementedErrorייצוא PDF אינו מיושם בגרסה זוהשתמש ב-Save() לפלט PNG, או ייצא תוצאות זיהוי כ-CSV/JSON/XML
תשובת בחירה מרובה שאינה מורשית מתקבלת בשקטברירת המחדל של FormValidationLogic.Ignore אינה מעלה על הפרותהעבר FormValidationLogic.Exception ל-GetTemplateProcessor(), והבטח שה-Multiselect של השאלה מושבת

FAQ

האם הספרייה דורשת ממשק משתמש גרפי (GUI) או חומרת OMR חיצונית?

לא. היא פועלת באופן מלא מקבצי תמונה (סריקות או תמונות) באמצעות numpy, opencv-python ו-Pillow.

האם אני יכול ליצור קובץ PDF של התבנית?

לא במוצא זה — GenerationResult.SaveAsPdf() ו-MemoryGenerationResult.GetPDF() משגרים גם NotImplementedError. השתמש בפלט PNG מ-Save()/GetImages() במקום.

איך אני מעבד הרבה טפסים סרוקים בבת אחת?

השתמש ב-TemplateProcessor.RecognizeFolder(folderPath, recognitionThreshold) כדי לזהות כל תמונה בתיקייה בקריאה אחת.


API Reference סיכום

מחלקה/מתודהתיאור
OmrEngine.Generateמציג תבנית כתמונת עמוד + .omr מתאר
OmrEngine.GetTemplateProcessorטוען .omr מתאר לזיהוי
TemplateProcessor.Recognizeמזהה תמונה סרוקה אחת
TemplateProcessor.RecognizeFolderמזהה כל תמונה בתיקייה
TemplateProcessor.Recalculateמחשב מחדש ניקוד של תוצאה עם סף חדש
RecognitionResult.GetCsv / GetJson / GetXmlמייצא תוצאות זיהוי

ראה גם

 עברית