Зворотний пошук зображень — це техніка, яка допомагає шукати візуально подібні зображення на основі зразка зображення. Може бути багато варіантів використання системи зворотного пошуку зображень. Найпоширеніші випадки використання:

  • Знайдіть повторюване зображення та видаліть дублікати
  • Шукайте вміст, схожий на зображення
  • Пошук невідповідного вмісту
  • Пошук зображень із цифровим підписом

API зворотного пошуку зображень

Існує багато програм, доступних для пошуку зображень на основі методів зворотного пошуку зображень. Однак якщо ви шукаєте рішення REST API для зворотного пошуку зображень, тоді ви потрапили в потрібне місце. Aspose.Imaging Cloud надає потужну пошукову систему, яка допомагає розробникам безперешкодно додавати функції зворотного пошуку зображень у свої програми на будь-якій платформі. Він порівнює вихідний набір зображень, що містить принаймні одне зображення, з кількома іншими зображеннями. У результаті цього порівняння ви отримаєте список найбільш схожих зображень за такими умовами:

  • Ступінь подібності
  • Мінімальний поріг схожості
  • Алгоритм порівняння

Наразі пошукова система Aspose.Imaging Cloud підтримує пошук зображень на основі вмісту, пошук дублікатів зображень, пошук зображень за користувальницькими зареєстрованими тегами, порівняння зображень і виявлення подібності, а також операції вилучення характеристик зображення.

Тут ми дамо вам короткий огляд функції пошуку дублікатів зображень за допомогою Aspose.Imaging Cloud REST API. Однак ви можете перевірити документацію Aspose.Imaging Cloud, щоб отримати повний список функцій і їх деталі.

Як знайти дублікати зображень?

Виявлення дублікатів зображень, це найпоширеніший спосіб використання системи зворотного пошуку зображень. Багатьом клієнтам доводиться сортувати свої бібліотеки фотографій, знаходячи схожі фотозображення та залишаючи один або кілька знімків, видаляючи ті, що залишилися.

Ми покажемо вам, як легко ви можете знайти дублікати зображень за допомогою Aspose.Imaging Cloud API. У прикладі ми використовуємо алгоритм AKAZE для виявлення функцій і алгоритм RandomBinaryTree для зіставлення функцій. Щоб знайти дублікати зображень, виконайте наведені нижче дії.

  • Завантажте вихідні зображення в сховище
  • Створіть контекст пошуку
  • Виділіть особливості зображення
  • Знайти дублікати зображень

Завантажте зображення в сховище

// Завантажте вхідні зображення в Cloud Storage
DirectoryInfo dir = new DirectoryInfo(PathToDataFiles);
FileInfo[] images = dir.GetFiles();
foreach (FileInfo image in images)
{
	// Завантажте локальне зображення в Cloud Storage
	using (FileStream localInputImage = System.IO.File.OpenRead(image.FullName))
	{
		var uploadFileRequest = new UploadFileRequest(image.Name, localInputImage);
		FilesUploadResult result = imagingApi.UploadFile(uploadFileRequest);
	}
	
}

Створіть контекст пошуку

// Створіть новий пошуковий контекст
 string searchContextId = CreateImageSearch();

/////////////////

public static string CreateImageSearch()
{
	string detector = "akaze";
	string matchingAlgorithm = "randomBinaryTree";
	string folder = null; // File will be saved at the root of the storage
	string storage = null; // We are using default Cloud Storage

	CreateImageSearchRequest createSearchContextRequest = new CreateImageSearchRequest(detector,matchingAlgorithm, folder, storage);
	SearchContextStatus status = imagingApi.CreateImageSearch(createSearchContextRequest);
	return status.Id;
}

Виділіть особливості зображення

// видобування зображень
foreach (FileInfo image in images)
	{               
	   CreateImageFeatures(image.Name, false, searchContextId);
    }
	
//////////////////////

// Витягніть функції зображень і додайте їх до контексту пошуку.
public static void CreateImageFeatures(string storageSourcePath, bool isFolder, string searchContextId)
{
	var request = isFolder
		   ? new CreateImageFeaturesRequest(searchContextId, imageId: null, imagesFolder: storageSourcePath, storage: null)
		   : new CreateImageFeaturesRequest(searchContextId, imageId: storageSourcePath, storage: null);
	imagingApi.CreateImageFeatures(request);
}

Знайти дублікати зображень

// Пошук повторюваних зображень
double? similarityThreshold = 80; // The similarity threshold
string folder = null; // Path to input files
string storage = null; // We are using default Cloud Storage

ImageDuplicatesSet imageDuplicatesSet = imagingApi.FindImageDuplicates(new FindImageDuplicatesRequest(searchContextId, similarityThreshold, folder, storage));
Console.WriteLine("Duplicates Set Count: " + imageDuplicatesSet.Duplicates.Count);

// процес дублює результати пошуку
foreach (var duplicates in imageDuplicatesSet.Duplicates)
{
	Console.WriteLine("Duplicates:");
	foreach (var duplicate in duplicates.DuplicateImages)
	{
		Console.WriteLine(
		   $"ImageName: {duplicate.ImageId}, Similarity: {duplicate.Similarity}");
	}

Висновок

У цій публікації ми дізналися про можливості Aspose.Imaging Cloud для виявлення дублікатів зображень. Ми бачили зразки коду та деталі того, як реалізувати цю функцію у вашій програмі. Тим часом, якщо у вас є запитання або вам потрібна додаткова допомога, будь ласка, напишіть нам коментар нижче або опублікуйте запитання на безкоштовному форумі підтримки. Це допомагає нам постійно вдосконалювати та вдосконалювати наш API.

Щоб дізнатися більше про Aspose.Imaging Cloud за допомогою безкоштовної пробної версії, усе, що вам потрібно, це зареєструватися на aspose.cloud. Після реєстрації ви можете переглянути наступні корисні ресурси Aspose.Imaging Cloud.

Пов’язані посилання

Ми рекомендуємо відвідати такі посилання, щоб дізнатися більше про: