
Обзор
Оптическое распознавание меток (OMR) — это электронный процесс, который упрощает чтение и захват данных, отмеченных людьми на специально разработанных документах, таких как тесты или опросы, которые включают в себя заполненные пользователями пузырьковые или квадратные поля. Используя извлечение данных из изображений в Java, мы можем эффективно обрабатывать отсканированные изображения этих анкет, опросников или тестовых листов, что делает возможным чтение пользовательских вводов программно. Эта статья научит вас, как выполнять OMR и извлекать данные из изображений с помощью Java.
Следующие темы будут рассмотрены в этой статье:
- Java OMR API для извлечения данных из изображения
- Извлечение данных из изображений в Java
- Выполнение OMR и извлечение данных из нескольких изображений
- Извлечение данных OMR с порогом
- Извлечение данных OMR с перерасчетом
Java OMR API для извлечения данных из изображения
Для выполнения OMR операций и извлечения данных из изображений в Java мы будем использовать Aspose.OMR для Java API. Этот мощный инструмент позволяет проектировать, создавать и распознавать ответные листы, тесты, тестовые задания, викторины, формы обратной связи, опросы и бюллетени.
Класс OmrEngine внутри API отвечает за создание шаблонов и обработку изображений. Его метод getTemplateProcessor(String templatePath) инициализирует экземпляр TemplateProcessor, предназначенный для работы с шаблонами и изображениями. Для распознавания изображения можно использовать метод recognizeImage(String imagePath), который возвращает все элементы OMR в виде экземпляра класса RecognitionResult. С помощью метода getCsv() вы можете сгенерировать строку CSV, содержащую результаты распознавания. Кроме того, метод recalculate(RecognitionResult result, int recognitionThreshold) уточняет результаты распознавания с пользовательскими параметрами.
Пожалуйста, либо скачайте JAR API, либо добавьте следующую конфигурацию pom.xml в Maven-приложение на Java.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-omr</artifactId>
<version>19.12</version>
</dependency>
Извлечение данных из изображений в Java
Для выполнения OMR операции нам требуется подготовленный файл шаблона OMR (.omr) и изображение заполненных форм или листов. Процесс извлечения данных из изображений в Java, в частности с использованием операций OMR, включает в себя следующие шаги:
- Во-первых, создайте экземпляр класса OmrEngine.
- Затем вызовите метод getTemplateProcessor() и инициализируйте объект класса TemplateProcessor, передав путь к файлу шаблона OMR в качестве аргумента.
- Далее получите объект RecognitionResult, вызвав метод recognizeImage() с путем к изображению в качестве аргумента.
- После этого получите результаты распознавания в виде строк CSV, используя метод getCsv().
- Наконец, сохраните результат CSV как CSV файл на локальном диске.
Следующий пример кода демонстрирует, как выполнить извлечение данных из изображений в Java, конвертируя данные OMR в формат CSV.

Выполнение OMR и извлечение данных из изображения в Java.
Пожалуйста, скачайте шаблон OMR, использованный в этой публикации.
Выполнение OMR и извлечение данных из нескольких изображений
Мы можем выполнять OMR операции на нескольких изображениях и извлекать данные в отдельный файл CSV для каждого из них, используя шаги, изложенные ранее. Для достижения извлечения данных из изображений в Java необходимо повторить шаги 3, 4 и 5 для всех изображений по отдельности.
Ниже приведен пример кода, демонстрирующий, как извлечь данные OMR из нескольких изображений с помощью Java.
. Список данных, будь то маркированный или нумерованный, должен оставаться совершенно неизменным.
Извлечение данных OMR с порогом в Java
Для выполнения операций Оптического Распознавания Меток (OMR) в Java мы используем пороговое значение от 0 до 100 в зависимости от конкретных требований. Это пороговое значение, используемое в извлечении данных из изображений в Java, определяет, насколько строго API будет выделять ответы; более высокое значение увеличивает строгость. Следует соблюдать шаги, упомянутые ранее, для обработки OMR с выбранным порогом. В частности, на шаге #3 необходимо вызвать метод recognizeImage(string, int32). Этот перегруженный метод требует путь к файлу изображения и желаемое пороговое значение в качестве параметров.
Следующий пример кода демонстрирует, как выполнять OMR с пороговым значением с использованием Java:
Извлечение данных OMR с перерасчетом в Java
При работе с точным извлечением данных из изображений в Java, особенно в отношении OMR, может возникнуть необходимость перерасчитки результатов с использованием разных пороговых значений. Настроив API, перерасчет можно автоматизировать с помощью метода TemplateProcessor.recalculate(). Этот подход позволяет многократно обрабатывать изображения, регулируя порог до достижения желаемого результата. Чтобы успешно выполнить операцию OMR с перерасчетом, следуйте приведенным ниже шагам:
- Во-первых, создайте экземпляр класса OmrEngine.
- Затем вызовите метод getTemplateProcessor() и инициализируйте объект класса TemplateProcessor. Он принимает путь к файлу шаблона OMR в качестве аргумента.
- Далее получите объект RecognitionResult, вызвав метод recognizeImage() с путем к изображению в качестве аргумента.
- Затем экспортируйте результаты распознавания в виде строки CSV, используя метод getCsv().
- После этого сохраните результат CSV как CSV файл на локальном диске.
- Далее вызовите метод recalculate(). Он принимает объект RecognitionResult и пороговое значение в качестве аргументов.
- Затем экспортируйте результаты распознавания в виде строки CSV, используя метод getCsv().
- Наконец, сохраните результат CSV как CSV файл на локальном диске.
Следующий пример кода демонстрирует, как выполнять OMR с методом перерасчета с использованием Java:
.
Получите бесплатную лицензию
У вас есть возможность получить бесплатную временную лицензию для использования библиотеки без ограничений на оценку. Это отличный способ исследовать такие функции, как извлечение данных из изображений в Java, позволяя вам полностью оценить ее возможности. Список данных ниже остается неизменным для вашего справочного:
- Библиотека эффективно работает с большими объемами данных.
- Интеграция с существующими системами проходит гладко.
- Извлеченные данные являются высокоточным и надежным.
- Шаги установки просты и хорошо документированы.
Заключение
В этой статье мы узнали, как:
- выполнять OMR операцию на изображениях;
- извлекать данные в формате CSV программно;
- применять настройку порога при выполнении OMR на изображениях;
- перерасчитывать результаты OMR в автоматическом режиме с помощью Java.
Кроме того, при работе с извлечением данных из изображений в Java вы можете узнать больше о Aspose.OMR для Java API, ознакомившись с документацией. Если у вас возникнут какие-либо проблемы, пожалуйста, не стесняйтесь обращаться к нам на нашем бесплатном форуме поддержки.