Извлечение данных из изображений в Java

Обзор

Оптическое распознавание меток (OMR) — это электронный процесс, который упрощает чтение и захват данных, отмеченных людьми на специально разработанных документах, таких как тесты или опросы, которые включают в себя заполненные пользователями пузырьковые или квадратные поля. Используя извлечение данных из изображений в Java, мы можем эффективно обрабатывать отсканированные изображения этих анкет, опросников или тестовых листов, что делает возможным чтение пользовательских вводов программно. Эта статья научит вас, как выполнять OMR и извлекать данные из изображений с помощью Java.

Следующие темы будут рассмотрены в этой статье:

  1. Java OMR API для извлечения данных из изображения
  2. Извлечение данных из изображений в Java
  3. Выполнение OMR и извлечение данных из нескольких изображений
  4. Извлечение данных OMR с порогом
  5. Извлечение данных 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, включает в себя следующие шаги:

  1. Во-первых, создайте экземпляр класса OmrEngine.
  2. Затем вызовите метод getTemplateProcessor() и инициализируйте объект класса TemplateProcessor, передав путь к файлу шаблона OMR в качестве аргумента.
  3. Далее получите объект RecognitionResult, вызвав метод recognizeImage() с путем к изображению в качестве аргумента.
  4. После этого получите результаты распознавания в виде строк CSV, используя метод getCsv().
  5. Наконец, сохраните результат CSV как CSV файл на локальном диске.

Следующий пример кода демонстрирует, как выполнить извлечение данных из изображений в Java, конвертируя данные OMR в формат CSV.

Извлечение-данных-из-изображения-в-Java

Выполнение 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 с перерасчетом, следуйте приведенным ниже шагам:

  1. Во-первых, создайте экземпляр класса OmrEngine.
  2. Затем вызовите метод getTemplateProcessor() и инициализируйте объект класса TemplateProcessor. Он принимает путь к файлу шаблона OMR в качестве аргумента.
  3. Далее получите объект RecognitionResult, вызвав метод recognizeImage() с путем к изображению в качестве аргумента.
  4. Затем экспортируйте результаты распознавания в виде строки CSV, используя метод getCsv().
  5. После этого сохраните результат CSV как CSV файл на локальном диске.
  6. Далее вызовите метод recalculate(). Он принимает объект RecognitionResult и пороговое значение в качестве аргументов.
  7. Затем экспортируйте результаты распознавания в виде строки CSV, используя метод getCsv().
  8. Наконец, сохраните результат CSV как CSV файл на локальном диске.

Следующий пример кода демонстрирует, как выполнять OMR с методом перерасчета с использованием Java:

.

Получите бесплатную лицензию

У вас есть возможность получить бесплатную временную лицензию для использования библиотеки без ограничений на оценку. Это отличный способ исследовать такие функции, как извлечение данных из изображений в Java, позволяя вам полностью оценить ее возможности. Список данных ниже остается неизменным для вашего справочного:

  1. Библиотека эффективно работает с большими объемами данных.
  2. Интеграция с существующими системами проходит гладко.
  3. Извлеченные данные являются высокоточным и надежным.
  4. Шаги установки просты и хорошо документированы.

Заключение

В этой статье мы узнали, как:

  • выполнять OMR операцию на изображениях;
  • извлекать данные в формате CSV программно;
  • применять настройку порога при выполнении OMR на изображениях;
  • перерасчитывать результаты OMR в автоматическом режиме с помощью Java.

Кроме того, при работе с извлечением данных из изображений в Java вы можете узнать больше о Aspose.OMR для Java API, ознакомившись с документацией. Если у вас возникнут какие-либо проблемы, пожалуйста, не стесняйтесь обращаться к нам на нашем бесплатном форуме поддержки.

См. также