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‑решения.
Начало работы с 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();