Generate machine-readable answer sheets, surveys, quizzes, test, questionnaires, and other OMR forms, and read optical marks from scanned images and photos with just a few lines of C++ code.
Vendor
Aspose
Company Website
Aspose.OMR for C++ is a powerful and flexible Optical Mark Recognition (OMR) API that enables developers to design, generate, and recognize machine-readable forms entirely using C++. It supports creating answer sheets, tests, quizzes, surveys, ballots, applications, and any other hand-filled structured forms with custom layouts and elements. Forms can be defined using a simple plain-text markup language or created programmatically. The API requires no specialized hardware—forms can be printed on any office printer and scanned or photographed with regular devices such as copiers, document scanners, DSLR cameras, smartphones, and webcams. Sophisticated image preprocessing algorithms ensure dependable recognition accuracy even when images contain noise, lighting issues, skew, or imperfect marks. Recognition results can be exported to CSV or JSON for further automated analysis. Aspose.OMR for C++ is a self-contained solution designed to run in any C++ development environment, on Windows, Linux, or in Docker, without third‑party dependencies.
Features
Form Creation & Layout Design
- Create OMR forms using a simple plain-text markup language—no design tools required.
- Combine various layout and content elements in any configuration.
- Generate printed forms as JPEG, PNG, or BMP output.
- Customize forms with text, images, logos, respondent identifiers, and branding.
- Supports all popular and many non-standard paper sizes.
- Easily generate complex forms of any layout and complexity. Form Rendering & Output
- Convert markup templates into print-ready images.
- Generate structured OMR forms using only a few lines of C++ code:
- Initialize engine
- Generate template
- Save as an image file
- Ensure high-quality rendering suitable for mass printing. Recognition Engine
- Recognize marks from scanned images (JPEG, PNG, BMP) or smartphone photos.
- Extract results in CSV or JSON format for database import or analytics.
- Batch processing: Recognize all forms in a folder with one command.
- Multi-mark tolerance: supports pen, pencil, markers, and various fill styles.
- Robust against lighting issues, blur, skew, noise, and low-quality input. Equipment Flexibility Use any commonly available tools:
- Auto-feed scanners
- Office copiers
- Inkjet or laser printers
- Handheld scanners
- DSLR cameras
- Smartphone cameras
- Autofocus webcams Platform Independence
- Works on any system supporting C++ development.
- Compatible with Windows, Linux, and Docker.
- Lightweight and self-contained—no specialized hardware or third-party tools required. Supported File Formats Build forms: TXT, JPEG, PNG, BMP Scan forms: JPEG, PNG, BMP Recognize forms: CSV, JSON
Benefits
- No specialized hardware needed: Work with standard scanners and cameras.
- High-speed, accurate recognition: Process hundreds of pages per minute with nearly 100% accuracy.
- Developer-friendly: Easy installation via NuGet or download package; minimal dependencies.
- Highly customizable: Add branding, layout variations, identifiers, logos, and images.
- Cost-effective automation: Eliminates manual grading and data entry.
- Applicable across all industries: Education, government, healthcare, finance, and more.
- Simple and powerful: Create and recognize forms in minutes with only basic C++ knowledge.