Виконання зворотного пошуку зображень у Java дозволяє розробникам знаходити схожі зображення в колекції на основі їх візуального вмісту, а не покладатися на ключові слова чи метадані. Ця функція особливо цінна в таких програмах, як пошук зображень, системи керування вмістом і керування цифровими активами. Використовуючи бібліотеку пошуку, розробники Java можуть легко реалізувати можливості зворотного пошуку зображень для швидкого пошуку відповідних зображень. У цій статті ми розповімо, як здійснити зворотній пошук зображень за допомогою Java, і надамо приклад коду, який допоможе вам почати роботу. Ця функція особливо корисна для роботи з різними форматами зображень, включаючи архіви PNG, JPEG і ZIP, забезпечуючи повну сумісність між різними платформами та типами файлів.
Кроки для виконання зворотного пошуку зображень за допомогою Java
- Інтегруйте бібліотеку GroupDocs.Search for Java у свій проект, щоб увімкнути функцію зворотного пошуку зображень
- Ініціалізуйте об’єкт Index, вказавши папку, де зберігатиметься індекс
- Налаштуйте параметри індексування зображень, щоб дозволити індексування зображень елементів контейнера, вбудованих зображень і окремих зображень
- Додайте документи до папки індексу з налаштованими параметрами індексування зображень
- Установіть параметри ImageSearchOptions, як-от відмінності хешів, максимальну кількість результатів і фільтри для документів для пошуку
- Створіть еталонне зображення для пошуку, визначивши шлях до файлу зображення за допомогою методу SearchImage.create
- Виконайте пошук зображення в індексі за допомогою еталонного зображення та визначених параметрів пошуку через Index.search
- Переглядайте результати пошуку та відображайте деталі кожного знайденого зображення
Щоб реалізувати цю функцію, процес починається зі створення індексу, який зберігає зображення разом із пов’язаними з ними метаданими. Клас 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.