Effectuer une recherche d'image inversée à l'aide de Java

La recherche d’images inversée dans Java permet aux développeurs de trouver des images similaires dans une collection en fonction de leur contenu visuel plutôt que de s’appuyer sur des mots-clés ou des métadonnées. Cette fonctionnalité est particulièrement utile dans les applications telles que la récupération d’images, les systèmes de gestion de contenu et la gestion des ressources numériques. En exploitant la bibliothèque de recherche, les développeurs Java peuvent facilement mettre en œuvre des fonctionnalités de recherche d’images inversée pour localiser rapidement les images correspondantes. Dans cet article, nous expliquerons comment effectuer une recherche d’images inversée à l’aide de Java et fournirons un exemple de code pour vous aider à démarrer. Cette fonctionnalité est particulièrement utile pour gérer divers formats d’image, notamment les archives PNG, JPEG et ZIP, garantissant une compatibilité transparente entre différentes plates-formes et types de fichiers.

Étapes pour effectuer une recherche d’image inversée à l’aide de Java

  1. Intégrez la bibliothèque GroupDocs.Search for Java à votre projet pour activer la fonctionnalité de recherche d’images inversée
  2. Initialisez un objet Index en spécifiant le dossier où l’index sera stocké
  3. Configurer les options d’indexation des images pour autoriser l’indexation des images d’éléments de conteneur, des images intégrées et des images autonomes
  4. Ajoutez des documents au dossier d’index avec les options d’indexation d’image configurées
  5. Définissez les options de recherche d’images, telles que les différences de hachage, le nombre maximal de résultats et les filtres pour les documents à rechercher
  6. Créez une image de référence pour la recherche en définissant le chemin d’accès au fichier image avec la méthode SearchImage.create
  7. Exécutez la recherche d’image dans l’index en utilisant l’image de référence et les options de recherche définies via Index.search
  8. Parcourez les résultats de la recherche et affichez les détails de chaque image trouvée

Pour implémenter cette fonctionnalité, le processus commence par la création d’un index qui stocke les images avec leurs métadonnées associées. La classe IndexingOptions est utilisée pour activer l’indexation de divers types d’images, tels que les images intégrées, les images d’éléments de conteneur et les images autonomes. Après l’indexation, la recherche peut être exécutée à l’aide de la classe SearchImage, qui vous permet de spécifier une image de référence et de trouver des correspondances similaires dans les documents indexés. La classe ImageSearchOptions fournit une personnalisation supplémentaire pour la recherche, notamment la définition de limites sur le nombre de résultats et la spécification des types de documents dans lesquels effectuer la recherche. Cette méthode permet une récupération efficace des images basée sur le contenu dans les applications Java. Vous trouverez ci-dessous le code Java pour la recherche d’images inversée, qui illustre comment appliquer ces fonctionnalités dans votre projet.

Code pour effectuer une recherche d’image inversée à l’aide de 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());
}
}
}

La recherche d’images basée sur le contenu à l’aide de Java est une propriété essentielle pour localiser efficacement des images similaires en fonction du contenu, permettant aux applications de trouver rapidement et avec précision des images dans divers environnements, des logiciels de bureau aux services basés sur le cloud. L’inclusion de la bibliothèque de recherche pour l’indexation et la recherche d’images garantit l’indépendance de la plate-forme, la rendant compatible avec Windows, macOS et Linux, tout en étant capable d’évoluer pour gérer de grands ensembles de données d’images. En tirant parti de ces fonctionnalités, les développeurs peuvent créer de puissants systèmes de recherche d’images qui améliorent l’expérience utilisateur et optimisent la gestion de contenu sur diverses plates-formes et applications. Cette approche améliore non seulement l’efficacité de la recherche, mais simplifie également la gestion de vastes bibliothèques d’images, garantissant une intégration fluide dans les flux de travail existants.

Nous avons déjà publié un guide détaillé sur l’exécution de recherches d’expressions régulières à l’aide de Java. Pour obtenir des instructions complètes étape par étape, consultez notre article détaillé sur la manière d’effectuer recherche d’expression régulière à l’aide de Java.

 Français