Provádění reverzního vyhledávání obrázků v Javě umožňuje vývojářům najít podobné obrázky v kolekci na základě jejich vizuálního obsahu, spíše než se spoléhat na klíčová slova nebo metadata. Tato funkce je zvláště cenná v aplikacích, jako je načítání obrázků, systémy správy obsahu a správa digitálních aktiv. Využitím knihovny Search mohou vývojáři Javy snadno implementovat funkce zpětného vyhledávání obrázků a rychle najít odpovídající obrázky. V tomto článku se budeme zabývat tím, jak provádět zpětné vyhledávání obrázků pomocí Java, a poskytneme příklad kódu, který vám pomůže začít. Tato funkce je zvláště užitečná pro práci s různými formáty obrázků, včetně archivů PNG, JPEG a ZIP, a zajišťuje bezproblémovou kompatibilitu napříč různými platformami a typy souborů.
Kroky k provedení zpětného vyhledávání obrázků pomocí Java
- Integrujte knihovnu GroupDocs.Search for Java do svého projektu a povolte funkci zpětného vyhledávání obrázků
- Inicializujte objekt Index zadáním složky, do které bude index uložen
- Nakonfigurujte možnosti indexování obrázků, abyste umožnili indexování obrázků kontejnerových položek, vložených obrázků a samostatných obrázků
- Přidejte dokumenty do složky indexu pomocí nakonfigurovaných možností indexování obrázků
- Nastavte ImageSearchOptions, jako jsou hash rozdíly, maximální počet výsledků a filtry pro dokumenty, které chcete prohledávat
- Vytvořte referenční obrázek pro vyhledávání definováním cesty k souboru obrázku pomocí metody SearchImage.create
- Proveďte vyhledávání obrázků v indexu pomocí referenčního obrázku a definovaných možností vyhledávání prostřednictvím Index.search
- Procházejte výsledky vyhledávání a zobrazte podrobnosti o každém nalezeném obrázku
Pro implementaci této funkce proces začíná vytvořením indexu, který ukládá obrázky spolu s jejich přidruženými metadaty. Třída IndexingOptions
se používá k povolení indexování pro různé typy obrázků, jako jsou vložené obrázky, obrázky kontejnerových položek a samostatné obrázky. Po indexování lze vyhledávání provést pomocí třídy SearchImage
, která vám umožňuje určit referenční obrázek a najít podobné shody v indexovaných dokumentech. Třída ImageSearchOptions
poskytuje další přizpůsobení pro vyhledávání, včetně nastavení limitů na počet výsledků a určení, které typy dokumentů se mají prohledávat. Tato metoda umožňuje efektivní načítání obrázků založené na obsahu v aplikacích Java. Níže je Java kód pro zpětné vyhledávání obrázků, který ilustruje, jak tyto funkce použít ve vašem projektu.
Kód pro provedení zpětného vyhledávání obrázků pomocí Javy
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()); | |
} | |
} | |
} |
Provádění načítání obrázků podle obsahu pomocí Java je základní vlastností pro efektivní vyhledávání podobných obrázků na základě obsahu, což umožňuje aplikacím rychle a přesně najít obrázky v různých prostředích, od softwaru pro stolní počítače po cloudové služby. Zahrnutí knihovny Search pro indexování a vyhledávání obrázků zajišťuje nezávislost na platformě, díky čemuž je kompatibilní s Windows, macOS a Linux a zároveň je možné škálovat pro správu velkých datových sad obrázků. Využitím těchto funkcí mohou vývojáři vytvářet výkonné systémy pro vyhledávání obrázků, které zlepšují uživatelské prostředí a optimalizují správu obsahu napříč různými platformami a aplikacemi. Tento přístup nejen zvyšuje efektivitu vyhledávání, ale také zjednodušuje práci s rozsáhlými knihovnami obrázků a zajišťuje hladkou integraci do stávajících pracovních postupů.
Dříve jsme publikovali podrobný návod k provádění vyhledávání regulárních výrazů pomocí Javy. Úplné pokyny krok za krokem naleznete v našem podrobném článku o tom, jak provádět vyhledávání regulárních výrazů pomocí Javy.