Извършете обратно търсене на изображения с помощта на Java

Извършването на обратно търсене на изображения в Java позволява на разработчиците да намират подобни изображения в колекция въз основа на тяхното визуално съдържание, вместо да разчитат на ключови думи или метаданни. Тази функция е особено ценна в приложения като извличане на изображения, системи за управление на съдържание и управление на цифрови активи. Използвайки библиотеката за търсене, разработчиците на Java могат лесно да внедрят възможности за обратно търсене на изображения за бързо намиране на съответстващи изображения. В тази статия ще разгледаме как да извършвате обратно търсене на изображения с помощта на Java и ще предоставим примерен код, който да ви помогне да започнете. Тази функционалност е особено полезна за работа с различни формати на изображения, включително PNG, JPEG и ZIP архиви, осигурявайки безпроблемна съвместимост между различни платформи и типове файлове.

Стъпки за извършване на обратно търсене на изображения с помощта на Java

  1. Интегрирайте библиотеката GroupDocs.Search for Java във вашия проект, за да активирате функцията за обратно търсене на изображения
  2. Инициализирайте обект Index, като посочите папката, където ще се съхранява индексът
  3. Конфигурирайте опциите за индексиране на изображението, за да разрешите индексиране за изображения на контейнерни елементи, вградени изображения и самостоятелни изображения
  4. Добавете документи към индексната папка с конфигурираните опции за индексиране на изображения
  5. Задайте ImageSearchOptions, като разлики в хешовете, максимален брой резултати и филтри за документите за търсене
  6. Създайте референтно изображение за търсенето, като дефинирате пътя до файла с изображение с метода SearchImage.create
  7. Извършете търсенето на изображение в индекса, като използвате референтното изображение и дефинираните опции за търсене чрез Index.search
  8. Прегледайте резултатите от търсенето и покажете подробностите за всяко намерено изображение

За да се приложи тази функционалност, процесът започва със създаване на индекс, който съхранява изображения заедно със свързаните с тях метаданни. Класът IndexingOptions се използва за активиране на индексиране за различни типове изображения, като например вградени изображения, изображения на контейнерни елементи и самостоятелни изображения. След индексиране, търсенето може да се извърши с помощта на класа SearchImage, който ви позволява да посочите референтно изображение и да намерите подобни съвпадения в индексираните документи. Класът ImageSearchOptions осигурява допълнително персонализиране на търсенето, включително задаване на ограничения за броя на резултатите и указване в кои типове документи да се търси. Този метод позволява ефикасно базирано на съдържание извличане на изображения в Java приложения. По-долу е Java кодът за обратно търсене на изображения, който илюстрира как да приложите тези функции във вашия проект.

Код за извършване на обратно търсене на изображения с помощта на 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());
}
}
}

Извършването на извличане на базирано на съдържание изображение с помощта на Java е съществено свойство за ефективно локализиране на подобни изображения въз основа на съдържание, което позволява на приложенията бързо и точно да намират изображения в различни среди, от настолен софтуер до базирани на облак услуги. Включването на библиотеката за търсене за индексиране и търсене на изображения гарантира независимост от платформата, което я прави съвместима с Windows, macOS и Linux, като същевременно може да се мащабира за управление на големи набори от данни за изображения. Като се възползват от тези функции, разработчиците могат да изградят мощни системи за търсене на изображения, които подобряват потребителското изживяване и оптимизират управлението на съдържанието в различни платформи и приложения. Този подход не само подобрява ефективността на търсенето, но също така опростява работата с обширни библиотеки с изображения, осигурявайки безпроблемна интеграция в съществуващите работни процеси.

По-рано публикувахме подробно ръководство за извършване на търсения с регулярни изрази с помощта на Java. За пълни инструкции стъпка по стъпка разгледайте нашата задълбочена статия за това как да изпълните търсене с регулярен израз с помощта на Java.

 Български