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 for 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 for C++ через NuGet

 
Install-Package Aspose.OMR.Cpp

Вы можете загрузить библиотеку напрямую со страницы продукта Aspose.OMR.

Создание шаблона/формы OMR через API C++

Aspose.OMR for 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 через API C++

Aspose.OMR for C++ оснащён продвинутыми функциями OMR, позволяя разработчикам программного обеспечения легко проектировать и обрабатывать сложные формы. Распознавание форм оптического распознавания отметок (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 for C++ превосходно справляется с высокоскоростным сканированием, обеспечивая быстрое и точное извлечение данных из листов OMR. Эта функция особенно ценна для приложений, где время имеет критическое значение, например, для экзаменов с ограниченным временем или опросов. API поддерживает широкий набор элементов OMR, включая флажки, сетки и текстовые области. Такая всесторонняя поддержка позволяет разработчикам работать с различными типами документов, делая её универсальным выбором для приложений, требующих функциональности OMR.

Обработка многостраничных документов

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

 Русский