Огляд можливостей

Огляд можливостей

Огляд функцій

Aspose.OMR FOSS для 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).

Перелічення систем письма та переповнення

Arabic, Hebrew, Persian, Urdu та Bengali системи письма (разом з Western), а також перелічення LongWordHandling/OverflowAction, присутні і правильно розбираються для точності API з поверхнею Aspose.OMR. Жоден з них ще не підтримується рендер-двигуном цього випуску — рендеринг працює лише LTR/Western-only, а поведінка переповнення ще не налаштовується. Обидва елементи відстежуються у upstream roadmap.


Поради та кращі практики

  • Використовуйте 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Експортує результати розпізнавання

Дивіться також

 Українська