Выполнить обратный поиск изображений с помощью Java

Выполнение обратного поиска изображений в Java позволяет разработчикам находить похожие изображения в коллекции на основе их визуального контента, а не полагаться на ключевые слова или метаданные. Эта функция особенно ценна в таких приложениях, как поиск изображений, системы управления контентом и управление цифровыми активами. Используя библиотеку поиска, разработчики Java могут легко реализовать возможности обратного поиска изображений для быстрого нахождения соответствующих изображений. В этой статье мы рассмотрим, как выполнять обратный поиск изображений с помощью Java, и предоставим пример кода, который поможет вам начать работу. Эта функция особенно полезна для обработки различных форматов изображений, включая архивы PNG, JPEG и ZIP, обеспечивая бесшовную совместимость между различными платформами и типами файлов.

Действия по выполнению обратного поиска изображений с использованием Java

  1. Интегрируйте библиотеку GroupDocs.Search for Java в свой проект, чтобы включить функцию обратного поиска изображений.
  2. Инициализируйте объект Index, указав папку, в которой будет храниться индекс.
  3. Настройте параметры индексации изображений, чтобы разрешить индексацию изображений элементов контейнера, встроенных изображений и отдельных изображений.
  4. Добавьте документы в папку индекса с настроенными параметрами индексации изображений.
  5. Установите параметры ImageSearchOptions, такие как различия хэшей, максимальное количество результатов и фильтры для документов для поиска.
  6. Создайте эталонное изображение для поиска, указав путь к файлу изображения с помощью метода SearchImage.create.
  7. Выполнить поиск изображений в индексе, используя эталонное изображение и заданные параметры поиска через Index.search.
  8. Просмотрите результаты поиска и отобразите сведения о каждом найденном изображении.

Для реализации этой функциональности процесс начинается с создания индекса, который хранит изображения вместе с их связанными метаданными. Класс IndexingOptions используется для включения индексации для различных типов изображений, таких как встроенные изображения, изображения элементов контейнера и отдельные изображения. После индексации поиск можно выполнить с помощью класса SearchImage, который позволяет указать эталонное изображение и найти похожие совпадения в индексированных документах. Класс ImageSearchOptions обеспечивает дальнейшую настройку поиска, включая установку ограничений на количество результатов и указание типов документов для поиска. Этот метод обеспечивает эффективный поиск изображений на основе содержимого в приложениях Java. Ниже приведен код Java для обратного поиска изображений, который иллюстрирует, как применять эти функции в вашем проекте.

Код для выполнения обратного поиска изображений с использованием Java

import com.groupdocs.search.Index;
import com.groupdocs.search.SearchDocumentFilter;
import com.groupdocs.search.common.SearchImage;
import com.groupdocs.search.licenses.License;
import com.groupdocs.search.options.ImageSearchOptions;
import com.groupdocs.search.options.IndexingOptions;
import com.groupdocs.search.results.FoundImageFrame;
import com.groupdocs.search.results.ImageSearchResult;
public class PerformReverseImageSearchusingJava {
public static void main(String[] args) throws Exception {
// Apply the license to remove the restrictions
// imposed by the Search library
License license = new License();
license.setLicense("GroupDocs.Search.lic");
// The path where the index will be stored
String indexFolder = "c:\\MyIndex\\";
// The folder containing the documents you want to search
String documentsFolder = "c:\\MyDocuments\\";
// Creating an index
Index index = new Index(indexFolder);
// Setting the image indexing options
IndexingOptions indexingOptions = new IndexingOptions();
indexingOptions.getImageIndexingOptions().setEnabledForContainerItemImages(true);
indexingOptions.getImageIndexingOptions().setEnabledForEmbeddedImages(true);
indexingOptions.getImageIndexingOptions().setEnabledForSeparateImages(true);
// Indexing documents in a document folder
index.add(documentsFolder, indexingOptions);
// Setting the image search options
ImageSearchOptions imageSearchOptions = new ImageSearchOptions();
imageSearchOptions.setHashDifferences(10);
imageSearchOptions.setMaxResultCount(10000);
imageSearchOptions.setSearchDocumentFilter(SearchDocumentFilter
.createFileExtension(".zip", ".png", ".jpg"));
// Creating a reference image for search
SearchImage searchImage = SearchImage.create("c:\\MyDocuments\\image.png");
// Searching in the index
ImageSearchResult result = index.search(searchImage, imageSearchOptions);
System.out.print("Images found: " + result.getImageCount());
for (int i = 0; i < result.getImageCount(); i++) {
FoundImageFrame image = result.getFoundImage(i);
System.out.print(image.getDocumentInfo().toString());
}
}
}

Выполнение поиска изображений на основе контента с использованием Java является важным свойством для эффективного поиска похожих изображений на основе контента, позволяя приложениям быстро и точно находить изображения в различных средах, от настольного программного обеспечения до облачных сервисов. Включение библиотеки поиска для индексации и поиска изображений обеспечивает независимость платформы, делая ее совместимой с Windows, macOS и Linux, а также позволяя масштабировать ее для управления большими наборами данных изображений. Используя эти функции, разработчики могут создавать мощные системы поиска изображений, которые улучшают пользовательский опыт и оптимизируют управление контентом на различных платформах и в приложениях. Такой подход не только повышает эффективность поиска, но и упрощает обработку обширных библиотек изображений, обеспечивая плавную интеграцию в существующие рабочие процессы.

Ранее мы опубликовали подробное руководство по выполнению поиска регулярных выражений с использованием Java. Для получения полных пошаговых инструкций изучите нашу подробную статью о том, как выполнить Поиск регулярных выражений с использованием Java.

 Русский