Aspose.OMR للـ C++
مكتبة C++ لإنشاء نماذج OMR والتعرف على البيانات
حل متقدم للتعرف الضوئي على العلامات (OMR) لمطوري C++ يتيح إنشاء قوالب/نماذج OMR والتعرف على الصور الممسوحة ضوئياً والصور الفوتوغرافية داخل تطبيقات C++.
ما هو Aspose.OMR للغة C++؟
Aspose.OMR for C++ هو واجهة برمجة تطبيقات OMR قوية ومرنة لـ C++ صُممت لتبسيط مهام التعرف البصري على العلامات داخل تطبيقات C++. مثالي للمطورين الذين يبنون أنظمة استبيانات، أدوات معالجة الامتحانات، أو تطبيقات OMR مخصصة، يوفر هذا SDK تكاملًا سلسًا، مع وثائق متعمقة، عينات شفرة، ودعم متعدد المنصات. بفضل قدراته على معالجة أسئلة الاختيار المتعدد، الشبكات، والأسئلة النصية، يتفوق في قراءة الصور الممسوحة ضوئيًا والصور الفوتوغرافية بدقة. يمكن للمطورين تصدير نتائج التعرف بصيغة CSV، مما يسهل تحليل البيانات من الاختبارات، النماذج، أو الاستبيانات عبر منصات مختلفة دون القلق بشأن مشكلات التوافق.
سواء كنت تطور برنامج OMR مخصص بلغة C++ أو تبحث عن مجموعة تطوير برامج (SDK) OMR موثوقة لـ C++، فإن Aspose.OMR تبرز كحل شامل. تدعم ميزات متقدمة مثل اكتشاف مربعات الاختيار، حقول الشبكة، وقوالب OMR المرنة. كما يتكامل المكتبة بسلاسة مع واجهات برمجة التطبيقات الأخرى من Aspose، مما يتيح للمطورين تعزيز تطبيقاتهم بميزات إضافية لتنسيقات الملفات أو أتمتة المستندات. من تحليل صور OMR عالي الدقة باستخدام C++ إلى بناء أنظمة معالجة نماذج قابلة للتوسع، تمكّن Aspose.OMR لـ C++ المطورين من إنشاء حلول OMR فعّالة وغنية بالميزات بسرعة وموثوقية.
البدء مع Aspose.OMR للغة C++
الطريقة الموصى بها لتثبيت Aspose.OMR لـ C++ هي عبر NuGet. يرجى استخدام الأمر التالي لضمان تثبيت سلس.
تثبيت Aspose.OMR لـ C++ عبر NuGet
Install-Package Aspose.OMR.Cpp
يمكنك تنزيل المكتبة مباشرةً من صفحة المنتج Aspose.OMR
إنشاء قالب/نموذج OMR عبر واجهة برمجة تطبيقات C++
يسهل Aspose.OMR لواجهة برمجة التطبيقات C++ إنشاء القوالب، وهو جانب حاسم في أنظمة OMR. باستخدام واجهة برمجة التطبيقات C++ OMR، يمكن لمطوري البرمجيات تصميم قوالب لأنواع مختلفة من النماذج، مما يضمن استخراج بيانات دقيقة أثناء عملية المسح. يمكن استخدام الواجهة لتخصيص حجم الورق، الاتجاه، الخط، الألوان وإعدادات التخطيط الأخرى التي تنطبق على جميع صفحات القالب والمزيد. تُسهم هذه الميزة في تبسيط دمج قدرات OMR في مختلف المجالات، مثل الاستطلاعات والامتحانات والتقييمات. يوضح المثال التالي كيفية إنشاء صورة نموذج يمكن طباعتها وتسليمها للمستجيبين داخل تطبيقات C++.
كيفية إنشاء صورة نموذج داخل تطبيقات C++؟
//Generate the form for ANSI Letter paper size
System::SharedPtr engine = System::MakeObject();
// Generate the form for ANSI Letter paper size (8.5 by 11 inches)
System::SharedPtr settings = System::MakeObject();
settings->setPaperSize(Api::PaperSize::Letter);
System::SharedPtr result = engine->GenerateTemplate(markupPath, nullptr, settings);
التعرف على نماذج OMR عبر واجهة برمجة تطبيقات C++
تم تزويد Aspose.OMR للغة C++ بوظائف OMR المتقدمة، مما يسمح لمطوري البرمجيات بتصميم ومعالجة النماذج المعقدة بسهولة. التعرف على نماذج التعرف البصري على العلامات (OMR) باستخدام واجهة برمجة التطبيقات عملية مباشرة تتضمن عدة خطوات رئيسية. بعد التثبيت يحتاج المستخدمون إلى تحميل قالب OMR الذي يتطابق مع النموذج الذي تريد التعرف عليه. بعد ذلك، قم بتحميل الصورة الممسوحة للنموذج OMR ومعالجتها باستخدام القالب المحمل، استرجع البيانات المعترف بها واحفظها إذا لزم الأمر. المثال التالي يوضح كيفية التعرف واستخراج البيانات من نموذج OMR داخل تطبيقات C++.
كيفية التعرف على واستخراج البيانات من نموذج OMR باستخدام واجهة برمجة التطبيقات C++؟
#include
omr::AsposeOmrApi api;
api.LoadTemplate("path/to/your/template.omr");
// Load and Process the Image
api.LoadImage("path/to/your/scanned/image.jpg");
api.Process();
// Access Recognized Data
omr::OmrPageReader reader = api.GetOmrPageReader();
std::vector pages = reader.ExtractPages();
omr::OmrPage page = pages[0]; // Assuming there's only one page in the form
// Access and handle recognized data
// Example: Extracting data from the grid
omr::Grid grid = page.GetGrids()[0]; // Assuming there's only one grid on the page
std::vector> data = grid.ExtractData();
// Finalize and Cleanup
api.Finalize();
مسح OMR عالي السرعة وفعال
الكفاءة هي الأساس، خاصةً عند التعامل مع كميات كبيرة من المستندات الممسوحة ضوئياً. يتميز Aspose.OMR للغة C++ بالمسح السريع عالي السرعة، مما يتيح استخراج البيانات بسرعة ودقة من أوراق OMR. هذه الميزة ذات قيمة خاصة للتطبيقات التي يكون الوقت فيها عاملاً حاسماً، مثل الامتحانات أو الاستطلاعات ذات الوقت المحدد. تدعم واجهة برمجة التطبيقات مجموعة واسعة من عناصر OMR، بما في ذلك مربعات الاختيار، والشبكات، ومناطق النص. هذا الدعم الشامل يمكّن المطورين من التعامل مع مجموعة متنوعة من أنواع المستندات، مما يجعله خيارًا متعدد الاستخدامات للتطبيقات التي تتطلب وظائف OMR.
معالجة المستندات متعددة الصفحات
تتفوق Aspose.OMR للغة C++ في معالجة المستندات متعددة الصفحات، مما يتيح للمطورين التعامل مع مجموعات بيانات ضخمة بسلاسة. تُعد هذه القدرة ذات قيمة خاصة للتطبيقات التي تتضمن استبيانات أو امتحانات مع عدد كبير من المشاركين. تتضمن معالجة المستندات متعددة الصفحات باستخدام واجهة برمجة تطبيقات OMR C++ سلسلة من الخطوات لتحميل ومعالجة واستخراج البيانات من كل صفحة. مثل تحميل قالب OMR، معالجة كل صفحة من المستند متعدد الصفحات وحفظ البيانات.
كيفية تحميل ومعالجة كل صفحة من مستند متعدد الصفحات عبر واجهة برمجة التطبيقات C++؟
#include
// Load the OMR template
omr::AsposeOmrApi api;
api.LoadTemplate("path/to/your/template.omr");
//process each page of the multi-page document.
const int pageCount = 5; // Change this to the total number of pages in your document
for (int currentPage = 1; currentPage <= pageCount; ++currentPage) {
std::string imagePath = "path/to/your/scanned/image" + std::to_string(currentPage) + ".jpg";
api.LoadImage(imagePath);
api.Process();
// Access and handle recognized data for each page
omr::OmrPageReader reader = api.GetOmrPageReader();
std::vector pages = reader.ExtractPages();
omr::OmrPage page = pages[0]; // Assuming there's only one page in each image
// Access and handle recognized data
// Example: Extracting data from the grid
omr::Grid grid = page.GetGrids()[0]; // Assuming there's only one grid on the page
std::vector> data = grid.ExtractData();
// Further processing or storage of the data can be done here
// Cleanup for the next iteration
api.Finalize();
}
// release resources.
api.Finalize();