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