Executar pesquisa reversa de imagens usando Java

A execução de pesquisa reversa de imagens em Java permite que os desenvolvedores encontrem imagens semelhantes em uma coleção com base em seu conteúdo visual em vez de depender de palavras-chave ou metadados. Esse recurso é especialmente valioso em aplicativos como recuperação de imagens, sistemas de gerenciamento de conteúdo e gerenciamento de ativos digitais. Ao aproveitar a biblioteca Search, os desenvolvedores Java podem implementar facilmente recursos de pesquisa reversa de imagens para localizar rapidamente imagens correspondentes. Neste artigo, abordaremos como executar pesquisa reversa de imagens usando Java e forneceremos um exemplo de código para ajudar você a começar. Essa funcionalidade é particularmente útil para lidar com vários formatos de imagem, incluindo arquivos PNG, JPEG e ZIP, garantindo compatibilidade perfeita entre diferentes plataformas e tipos de arquivo.

Etapas para executar pesquisa reversa de imagens usando Java

  1. Integre a biblioteca GroupDocs.Search for Java ao seu projeto para habilitar a funcionalidade de pesquisa reversa de imagens
  2. Inicialize um objeto Index especificando a pasta onde o índice será armazenado
  3. Configurar opções de indexação de imagem para permitir a indexação de imagens de itens de contêiner, imagens incorporadas e imagens autônomas
  4. Adicione documentos à pasta de índice com as opções de indexação de imagem configuradas
  5. Defina ImageSearchOptions, como diferenças de hash, o número máximo de resultados e filtros para os documentos a serem pesquisados
  6. Crie uma imagem de referência para a pesquisa definindo o caminho para o arquivo de imagem com o método SearchImage.create
  7. Execute a pesquisa de imagens dentro do índice usando a imagem de referência e as opções de pesquisa definidas por meio do Index.search
  8. Iterar pelos resultados da pesquisa e exibir os detalhes de cada imagem encontrada

Para implementar essa funcionalidade, o processo começa com a criação de um índice que armazena imagens junto com seus metadados associados. A classe IndexingOptions é usada para habilitar a indexação para vários tipos de imagem, como imagens incorporadas, imagens de itens de contêiner e imagens autônomas. Após a indexação, a pesquisa pode ser executada usando a classe SearchImage, que permite que você especifique uma imagem de referência e encontre correspondências semelhantes nos documentos indexados. A classe ImageSearchOptions fornece personalização adicional para a pesquisa, incluindo a definição de limites no número de resultados e a especificação de quais tipos de documentos pesquisar. Este método permite a recuperação eficiente de imagens com base em conteúdo em aplicativos Java. Abaixo está o código Java para pesquisa reversa de imagens, que ilustra como aplicar esses recursos em seu projeto.

Código para executar pesquisa reversa de imagens usando 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());
}
}
}

Executar recuperação de imagem baseada em conteúdo usando Java é uma propriedade essencial para localizar imagens semelhantes com base no conteúdo de forma eficiente, permitindo que os aplicativos encontrem imagens de forma rápida e precisa em diversos ambientes, de software de desktop a serviços baseados em nuvem. A inclusão da biblioteca Search para indexação e pesquisa de imagens garante independência de plataforma, tornando-a compatível com Windows, macOS e Linux, além de poder ser dimensionada para gerenciar grandes conjuntos de dados de imagens. Ao aproveitar esses recursos, os desenvolvedores podem criar sistemas de pesquisa de imagens poderosos que melhoram as experiências do usuário e otimizam o gerenciamento de conteúdo em várias plataformas e aplicativos. Essa abordagem não apenas aprimora a eficiência da pesquisa, mas também simplifica o manuseio de extensas bibliotecas de imagens, garantindo integração suave em fluxos de trabalho existentes.

Anteriormente, publicamos um guia detalhado sobre como executar pesquisas de expressão regular usando Java. Para instruções passo a passo completas, explore nosso artigo aprofundado sobre como executar pesquisa de expressão regular usando Java.

 Português