1. Продукти
  2.   OMR
  3.   C++
  4.   Aspose.OMR for C++

Aspose.OMR for C++

 
 

Бібліотека C++ для створення OMR форм та розпізнавання даних

Сучасне рішення з оптичного розпізнавання позначок (OMR) для розробників C++, яке дозволяє створювати OMR шаблони/форми та розпізнавати скановані зображення та фотографії у C++ застосунках.

Що таке Aspose.OMR для C++?

Aspose.OMR для C++ — потужний і гнучкий C++ OMR API, розроблений для оптимізації завдань оптичного розпізнавання позначок у C++ додатках. Ідеальний для розробників, які створюють системи опитувань, інструменти обробки іспитів або кастомні OMR додатки, цей SDK забезпечує безшовну інтеграцію, супроводжується докладною документацією, прикладами коду та крос‑платформенною підтримкою. Завдяки можливостям обробки питань з вибором варіантів, сіткових та текстових типів, він відмінно читає відскановані зображення та фотографії. Розробники можуть експортувати результати розпізнавання у форматі CSV, що спрощує аналіз даних з тестів, форм або анкет на різних платформах без проблем сумісності.

Незалежно від того, чи розробляєте ви власне ПЗ OMR на C++, чи шукаєте надійний OMR SDK для C++, Aspose.OMR виділяється як комплексне рішення. Воно підтримує розширені функції, такі як виявлення прапорців, сіткові поля та гнучкі шаблони OMR. Бібліотека також плавно інтегрується з іншими API Aspose, дозволяючи розробникам розширювати свої додатки додатковими можливостями роботи з форматами файлів або автоматизації документів. Від високоточних аналізів OMR‑зображень на C++ до створення масштабованих систем обробки форм, Aspose.OMR для C++ дає змогу розробникам швидко та надійно створювати ефективні та багатофункціональні OMR‑рішення.

Previous Next

Початок роботи з Aspose.OMR для C++

Рекомендований спосіб встановлення Aspose.OMR для C++ — через NuGet. Будь ласка, використайте наступну команду для безперешкодної інсталяції.

Встановіть Aspose.OMR для C++ через NuGet

 
Install-Package Aspose.OMR.Cpp

Ви можете завантажити бібліотеку безпосередньо зі сторінки продукту Aspose.OMR

Створення шаблону/форми OMR за допомогою C++ API

Aspose.OMR для C++ API полегшує створення шаблонів, що є важливим аспектом OMR‑систем. За допомогою C++ OMR API розробники програмного забезпечення можуть розробляти шаблони для різних типів форм, забезпечуючи точне вилучення даних під час процесу сканування. 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 за допомогою C++ API

Aspose.OMR для C++ оснащений розширеною функціональністю OMR, що дозволяє розробникам програмного забезпечення легко створювати та обробляти складні форми. Розпізнавання форм Optical Mark Recognition (OMR) за допомогою API — це простий процес, який включає кілька ключових кроків. Після встановлення користувачам потрібно завантажити шаблон OMR, який відповідає формі, яку ви хочете розпізнати. Після цього завантажте скановане зображення форми OMR і обробіть його за допомогою завантаженого шаблону, отримайте розпізнані дані та, за потреби, збережіть їх. Наступний приклад показує, як розпізнавати та витягувати дані з форми OMR у C++ додатках.

Як розпізнати та витягти дані з OMR форми за допомогою C++ API?

#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 for C++ відзначається обробкою багатосторінкових документів, дозволяючи розробникам безперешкодно працювати з великими наборами даних. Ця можливість особливо цінна для застосувань, пов'язаних з опитуваннями або іспитами з великою кількістю учасників. Обробка багатосторінкових документів за допомогою OMR C++ API включає серію кроків для завантаження, обробки та вилучення даних з кожної сторінки. Наприклад, завантаження шаблону OMR, обробка кожної сторінки багатосторінкового документа та збереження даних.

Як завантажити та обробити кожну сторінку багатосторінкового документа за допомогою C++ API?

#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();

 Українська