Aspose.OMR for C++
کتابخانه C++ برای ایجاد فرمهای OMR و شناسایی دادهها
یک راهحل پیشرفته تشخیص علامت نوری (OMR) برای توسعهدهندگان C++ که امکان ایجاد قالبها/فرمهای OMR و تشخیص تصاویر اسکنشده و عکسها را در برنامههای C++ فراهم میکند.
Aspose.OMR برای C++ چیست؟
Aspose.OMR برای C++ یک API قدرتمند و انعطافپذیر OMR برای C++ است که برای سادهسازی وظایف تشخیص علامت نوری (Optical Mark Recognition) در برنامههای C++ طراحی شده است. این SDK برای توسعهدهندگانی که سیستمهای نظرسنجی، ابزارهای پردازش آزمون یا برنامههای سفارشی OMR میسازند ایدهآل است و ادغام یکپارچهای را ارائه میدهد، به همراه مستندات جامع، کد نمونه و پشتیبانی چندپلتفرمی. با قابلیت پردازش انواع سؤالهای چندگزینهای، جدولی و مبتنی بر متن، در خواندن دقیق تصاویر اسکنشده و عکسها برتری دارد. توسعهدهندگان میتوانند نتایج شناسایی را در قالب CSV صادر کنند، که تجزیه و تحلیل دادههای تستها، فرمها یا پرسشنامهها را در پلتفرمهای مختلف آسان میسازد بدون نگرانی درباره مشکلات سازگاری.
چه در حال توسعه نرمافزار OMR سفارشی C++ باشید و چه به دنبال یک SDK قابل اعتماد OMR برای C++ باشید، Aspose.OMR به عنوان یک راهحل جامع برجسته میشود. این کتابخانه ویژگیهای پیشرفتهای مانند تشخیص چکباکس، فیلدهای شبکهای و قالبهای انعطافپذیر OMR را پشتیبانی میکند. همچنین این کتابخانه بهصورت یکپارچه با سایر APIهای 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 از طریق API C++
API Aspose.OMR برای C++ ایجاد قالب را تسهیل میکند، که یک جنبه حیاتی از سیستمهای OMR است. با استفاده از API OMR C++، توسعهدهندگان نرمافزار میتوانند قالبهایی برای انواع مختلف فرمها طراحی کنند و استخراج دقیق دادهها را در فرآیند اسکن تضمین نمایند. این API میتواند برای سفارشیسازی اندازه کاغذ، جهتگیری، قلم، رنگها و سایر تنظیمات چیدمان که بر تمام صفحات قالب اعمال میشود و موارد دیگر استفاده شود. این ویژگی یکپارچهسازی قابلیتهای 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 از طریق API C++
Aspose.OMR for C++ با قابلیتهای پیشرفته OMR مجهز است که به توسعهدهندگان نرمافزار امکان طراحی و پردازش فرمهای پیچیده را به سادگی میدهد. شناسایی فرمهای تشخیص علامت نوری (OMR) با استفاده از API فرآیندی ساده است که شامل چندین گام کلیدی میشود. پس از نصب، کاربران باید قالب OMR مربوط به فرم مورد نظر را بارگذاری کنند. سپس تصویر اسکنشده فرم OMR را بارگذاری کرده و با استفاده از قالب بارگذاریشده پردازش کنند، دادههای شناساییشده را بازیابی کرده و در صورت نیاز ذخیره کنند. مثال زیر نشان میدهد چگونه میتوان دادهها را از فرم OMR در برنامههای C++ شناسایی و استخراج کرد.
چگونه دادهها را از فرم OMR با استفاده از API 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 را فراهم میکند. این ویژگی بهویژه برای برنامههایی که زمان مهم است، مانند آزمونها یا نظرسنجیهای زماندار، ارزشمند است. API از طیف گستردهای از عناصر OMR پشتیبانی میکند، از جمله چکباکسها، شبکهها و نواحی متنی. این پشتیبانی جامع به توسعهدهندگان امکان میدهد انواع مختلفی از اسناد را مدیریت کنند و این محصول را به گزینهای چندمنظوره برای برنامههایی که به عملکرد OMR نیاز دارند، تبدیل میکند.
پردازش اسناد چندصفحهای
Aspose.OMR برای C++ در پردازش اسناد چندصفحهای برتری دارد و به توسعهدهندگان امکان میدهد مجموعههای داده بزرگ را بهصورت یکپارچه مدیریت کنند. این قابلیت بهویژه برای برنامههایی که شامل نظرسنجیها یا آزمونهای با تعداد زیاد شرکتکننده هستند، ارزشمند است. پردازش اسناد چندصفحهای با استفاده از API OMR C++ شامل مراحلی برای بارگذاری، پردازش و استخراج دادهها از هر صفحه میشود؛ مانند بارگذاری قالب OMR، پردازش هر صفحه از سند چندصفحهای و ذخیرهسازی دادهها.
چگونه هر صفحه از سند چندصفحهای را با استفاده از API 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();