جستجوی عکس معکوس تکنیکی است که به شما کمک می کند تصاویر مشابه بصری را بر اساس تصویر نمونه خود جستجو کنید. ممکن است موارد استفاده زیادی برای اعمال موتور جستجوی عکس معکوس وجود داشته باشد. رایج ترین موارد استفاده موارد زیر است:

  • تصویر تکراری را جستجو کنید و موارد تکراری را حذف کنید
  • تصاویر مشابه محتوا را جستجو کنید
  • جستجوی محتوای نامناسب
  • جستجوی تصاویر با امضای دیجیتال

API جستجوی عکس معکوس

برنامه های زیادی برای جستجوی تصویر بر اساس تکنیک های جستجوی عکس معکوس وجود دارد. با این حال، اگر به دنبال یک راه حل REST API برای جستجوی عکس معکوس هستید، در مکان مناسبی قرار گرفته اید. Aspose.Imaging Cloud یک موتور جستجوی قدرتمند ارائه می دهد که به توسعه دهندگان کمک می کند تا ویژگی های جستجوی عکس معکوس را به برنامه خود در هر پلتفرمی به طور یکپارچه اضافه کنند. مجموعه تصویر منبع را که حداقل یک تصویر را شامل می شود، با چندین تصویر دیگر مقایسه می کند. در نتیجه این مقایسه، لیستی از مشابه ترین تصاویر را با توجه به شرایط زیر دریافت می کنید:

  • درجه تشابه
  • حداقل آستانه تشابه
  • الگوریتم مقایسه

در حال حاضر، موتور جستجوی Aspose.Imaging Cloud از جستجوی تصویر مبتنی بر محتوا، جستجوی تصویر تکراری، جستجوی تصویر با برچسب‌های ثبت شده سفارشی، مقایسه تصویر و تشخیص شباهت و عملیات استخراج ویژگی‌های تصویر پشتیبانی می‌کند.

در اینجا، ما یک نمای کلی سریع از ویژگی برای یافتن تصاویر تکراری با استفاده از Aspose.Imaging Cloud REST API به شما ارائه می دهیم. با این حال، می‌توانید Aspose.Imaging Cloud documentation را برای فهرست کامل ویژگی‌ها و جزئیات آنها بررسی کنید.

چگونه تصاویر تکراری را پیدا کنیم؟

تشخیص تصویر تکراری، این رایج ترین استفاده از موتور جستجوی عکس معکوس است. بسیاری از مشتریان باید مجموعه عکس های خود را با پیدا کردن تصاویر مشابه و گذاشتن یک یا چند عکس و در عین حال حذف بقیه عکس ها مرتب کنند.

ما به شما نشان خواهیم داد که با استفاده از Aspose.Imaging Cloud API به راحتی می توانید تصاویر تکراری را پیدا کنید. ما از الگوریتم AKAZE برای تشخیص ویژگی‌ها و الگوریتم RandomBinaryTree برای تطبیق ویژگی در مثال استفاده می‌کنیم. برای یافتن تصاویر تکراری این مراحل را دنبال می کنیم:

  • تصاویر منبع را در حافظه بارگذاری کنید
  • زمینه جستجو را ایجاد کنید
  • استخراج ویژگی های تصویر
  • پیدا کردن تصاویر تکراری

تصاویر را در فضای ذخیره سازی آپلود کنید

// تصاویر ورودی را در Cloud Storage بارگذاری کنید
DirectoryInfo dir = new DirectoryInfo(PathToDataFiles);
FileInfo[] images = dir.GetFiles();
foreach (FileInfo image in images)
{
	// تصویر محلی را در فضای ذخیره‌سازی ابری آپلود کنید
	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] ثبت نام کنید5. پس از ثبت نام، می توانید منابع مفید زیر Aspose.Imaging Cloud را مرور کنید.

لینک های مرتبط

توصیه می کنیم برای کسب اطلاعات بیشتر به لینک های زیر مراجعه کنید: