مروری بر ویژگی‌ها

مروری بر ویژگی‌ها

مروری بر ویژگی‌ها

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() نتیجه‌ی قبلاً شناسایی‌شده را با آستانه‌ای متفاوت دوباره‌امتیازدهی می‌کند بدون اینکه تصویر منبع را دوباره بخواند. اصلاح انحراف (De-skew) از علائم مرجع گوشه‌ای (ReferencePointsSettings) استفاده می‌کند.

صادرات نتیجه

RecognitionResult به CSV، JSON یا XML صادر می‌شود، هر کدام با یک گونهٔ جریان در-حافظهٔ متناظر (GetCsvAsStream، GetJsonAsStream، GetXmlAsStream).

سیستم‌های نوشتاری و Enumهای سرریز

Arabic، Hebrew، Persian، Urdu و Bengali سیستم‌های نوشتاری (به‌همراه Western)، و Enumهای LongWordHandling/OverflowAction موجود هستند و به‌درستی برای دقت API با سطح Aspose.OMR تجزیه می‌شوند. هردو هنوز توسط موتور رندر این نسخه مورد توجه قرار نگرفته‌اند — رندر فقط LTR/Western است و رفتار سرریز هنوز قابل پیکربندی نیست. هر دو در نقشهٔ راه بالا‌دستی دنبال می‌شوند.


نکات و بهترین روش‌ها

  • برای فرم‌های ساده از DSL علامت‌گذاری استفاده کنید؛ وقتی به کنترل برنامه‌نویسی‌شده بر روی جایگذاری عناصر نیاز دارید، به درخت TemplateConfig اولویت-کد سوئیچ کنید.
  • FormValidationLogic.Exception تخلفات چندانتخابی را بلافاصله نمایش می‌دهد به‌جای این‌که به‌صورت ساکت آن‌ها را نادیده بگیرد، برای پرسش‌هایی که چندانتخاب غیرفعال است.
  • به جای حلقه‌زنی Recognize()، هنگام پردازش یک دسته اسکن، RecognizeFolder() را ترجیح دهید.
  • به جای اسکن مجدد، وقتی فقط نیاز به امتحان کردن آستانه تشخیص متفاوت دارید، Recalculate() را فراخوانی کنید.

مشکلات رایج

مسئلهدلیلرفع
SaveAsPdf() NotImplementedError را برمی‌انگیزدصدور PDF در این نسخه پیاده‌سازی نشده استاز Save() برای خروجی PNG استفاده کنید، یا نتایج شناسایی را به عنوان CSV/JSON/XML صادر کنید
پاسخ چندگزینه‌ای غیرمجاز به‌صورت خاموش پذیرفته می‌شودپیش‌فرض FormValidationLogic.Ignore در موارد نقض خطایی ایجاد نمی‌کندمقدار FormValidationLogic.Exception را به GetTemplateProcessor() بدهید و اطمینان حاصل کنید که Multiselect سؤال غیرفعال باشد

FAQ

آیا کتابخانه به هیچ رابط کاربری گرافیکی یا سخت‌افزار 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نتایج شناسایی را صادر می‌کند

همچنین ببینید:

 فارسی