Wykonaj odwrotne wyszukiwanie obrazów za pomocą Java

Wykonywanie odwrotnego wyszukiwania obrazów w Javie umożliwia programistom znajdowanie podobnych obrazów w kolekcji na podstawie ich zawartości wizualnej, a nie poleganie na słowach kluczowych lub metadanych. Ta funkcja jest szczególnie cenna w aplikacjach, takich jak wyszukiwanie obrazów, systemy zarządzania treścią i zarządzanie zasobami cyfrowymi. Wykorzystując bibliotekę wyszukiwania, programiści Javy mogą łatwo wdrożyć możliwości odwrotnego wyszukiwania obrazów, aby szybko zlokalizować pasujące obrazy. W tym artykule omówimy, jak wykonywać odwrotne wyszukiwanie obrazów za pomocą Javy i podamy przykład kodu, który pomoże Ci zacząć. Ta funkcjonalność jest szczególnie przydatna do obsługi różnych formatów obrazów, w tym archiwów PNG, JPEG i ZIP, zapewniając bezproblemową kompatybilność na różnych platformach i typach plików.

Kroki wykonywania odwrotnego wyszukiwania obrazów za pomocą języka Java

  1. Zintegruj bibliotekę GroupDocs.Search for Java ze swoim projektem, aby włączyć funkcję wyszukiwania odwrotnego obrazów
  2. Zainicjuj obiekt Index, określając folder, w którym zostanie zapisany indeks
  3. Skonfiguruj opcje indeksowania obrazów, aby umożliwić indeksowanie obrazów elementów kontenera, obrazów osadzonych i obrazów samodzielnych
  4. Dodawaj dokumenty do folderu indeksu z skonfigurowanymi opcjami indeksowania obrazów
  5. Ustaw opcje ImageSearchOptions, takie jak różnice hashów, maksymalną liczbę wyników i filtry dla dokumentów do przeszukania
  6. Utwórz obraz referencyjny dla wyszukiwania, definiując ścieżkę do pliku obrazu za pomocą metody SearchImage.create
  7. Wykonaj wyszukiwanie obrazów w indeksie, używając obrazu referencyjnego i zdefiniowanych opcji wyszukiwania za pomocą Index.search
  8. Przejrzyj wyniki wyszukiwania i wyświetl szczegóły każdego znalezionego obrazu

Aby wdrożyć tę funkcjonalność, proces rozpoczyna się od utworzenia indeksu, który przechowuje obrazy wraz z powiązanymi metadanymi. Klasa IndexingOptions jest używana do włączania indeksowania różnych typów obrazów, takich jak obrazy osadzone, obrazy elementów kontenera i obrazy samodzielne. Po indeksowaniu wyszukiwanie można wykonać za pomocą klasy SearchImage, która umożliwia określenie obrazu referencyjnego i znalezienie podobnych dopasowań w indeksowanych dokumentach. Klasa ImageSearchOptions zapewnia dalszą personalizację wyszukiwania, w tym ustawianie limitów liczby wyników i określanie typów dokumentów do przeszukiwania. Ta metoda umożliwia wydajne pobieranie obrazów na podstawie zawartości w aplikacjach Java. Poniżej znajduje się kod Java do odwrotnego wyszukiwania obrazów, który ilustruje, jak stosować te funkcje w projekcie.

Kod do wykonywania odwrotnego wyszukiwania obrazów za pomocą języka 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());
}
}
}

Wykonywanie pobierania obrazów na podstawie zawartości przy użyciu języka Java jest niezbędną właściwością do efektywnego lokalizowania podobnych obrazów na podstawie zawartości, umożliwiając aplikacjom szybkie i dokładne znajdowanie obrazów w różnych środowiskach, od oprogramowania komputerowego po usługi w chmurze. Włączenie biblioteki wyszukiwania do indeksowania i wyszukiwania obrazów zapewnia niezależność platformy, dzięki czemu jest ona zgodna z systemami Windows, macOS i Linux, a także umożliwia skalowanie w celu zarządzania dużymi zestawami danych obrazów. Korzystając z tych funkcji, programiści mogą budować wydajne systemy wyszukiwania obrazów, które poprawiają doświadczenia użytkowników i optymalizują zarządzanie treścią na różnych platformach i w różnych aplikacjach. Takie podejście nie tylko zwiększa wydajność wyszukiwania, ale także upraszcza obsługę rozległych bibliotek obrazów, zapewniając płynną integrację z istniejącymi przepływami pracy.

Wcześniej opublikowaliśmy szczegółowy przewodnik dotyczący wykonywania wyszukiwań wyrażeń regularnych przy użyciu języka Java. Aby uzyskać kompletne instrukcje krok po kroku, zapoznaj się z naszym szczegółowym artykułem na temat wykonywania wyszukiwanie wyrażeń regularnych przy użyciu języka Java.

 Polski