Ters Resim Arama, örnek resminize göre görsel olarak benzer resimleri aramanıza yardımcı olan bir tekniktir. Ters resim arama motorunu uygulamak için birçok kullanım durumu olabilir. En yaygın kullanım durumları şunlardır:

  • Yinelenen görseli arayın ve yinelenenleri kaldırın
  • Benzer görsellere ait içerikleri arayın
  • Uygunsuz içerik arayın
  • Dijital olarak imzalanmış görselleri arayın

Ters Görüntü Arama API’si

Ters görüntü arama tekniklerine dayalı görüntü arama için birçok uygulama mevcuttur. Ancak, ters görüntü araması için bir REST API çözümü arıyorsanız, doğru yerdesiniz. Aspose.Imaging Cloud, geliştiricilerin uygulamalarına herhangi bir platformda sorunsuz bir şekilde ters görüntü arama özellikleri eklemelerine yardımcı olan güçlü bir arama motoru sağlar. En az bir görüntü içeren kaynak görüntü kümesini diğer birkaç görüntüyle karşılaştırır. Bu karşılaştırmanın sonucunda, aşağıdaki koşullara göre en benzer görüntülerin bir listesini elde edersiniz:

  • Benzerlik derecesi
  • Benzerliğin asgari eşiği
  • Karşılaştırma algoritması

Şu anda Aspose.Imaging Cloud arama motoru içerik tabanlı resim araması, yinelenen resim araması, özel kayıtlı etiketlerle resim araması, resim karşılaştırma ve benzerlik tespiti ve resim özelliği çıkarma işlemlerini desteklemektedir.

Burada, Aspose.Imaging Cloud REST API’sini kullanarak yinelenen görüntüleri bulma özelliğine dair hızlı bir genel bakış sunacağız. Ancak, özelliklerin ve ayrıntılarının tam listesi için Aspose.Imaging Cloud belgelerini kontrol edebilirsiniz.

Çift Görseller Nasıl Bulunur?

Yinelenen görüntü algılama, ters görüntü arama motorunun en yaygın kullanımıdır. Birçok müşterinin benzer fotoğraf görüntülerini bularak ve kalanları silerek bir veya birkaç çekim bırakarak fotoğraf kütüphanelerini düzenlemesi gerekir.

Aspose.Imaging Cloud API’yi kullanarak yinelenen görüntüleri ne kadar kolay bulabileceğinizi göstereceğiz. Örnekte özellik algılama için AKAZE algoritmasını ve özellik eşleştirme için RandomBinaryTree algoritmasını kullanıyoruz. Yinelenen görüntüleri bulmak için şu adımları izleyeceğiz:

  • Kaynak görüntüleri depolama alanına yükleyin
  • Arama bağlamı oluştur
  • Görüntü özelliklerini ayıkla
  • Yinelenen görselleri bulun

Görüntüleri depolama alanına yükleyin

// Giriş resimlerini Cloud Depolamaya yükleyin
DirectoryInfo dir = new DirectoryInfo(PathToDataFiles);
FileInfo[] images = dir.GetFiles();
foreach (FileInfo image in images)
{
	// Yerel görüntüyü Cloud Depolamaya yükleyin
	using (FileStream localInputImage = System.IO.File.OpenRead(image.FullName))
	{
		var uploadFileRequest = new UploadFileRequest(image.Name, localInputImage);
		FilesUploadResult result = imagingApi.UploadFile(uploadFileRequest);
	}
	
}

Arama bağlamı oluştur

// Yeni arama bağlamı oluştur
 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;
}

Görüntü özelliklerini ayıkla

// resim özelliklerini çıkar
foreach (FileInfo image in images)
	{               
	   CreateImageFeatures(image.Name, false, searchContextId);
    }
	
/////////////////////

// Resim özelliklerini ayıklayın ve arama bağlamına ekleyin.
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);
}

Yinelenen görselleri bulun

// Çift Görüntüleri Bulma
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);

// işlem yinelenen arama sonuçları
foreach (var duplicates in imageDuplicatesSet.Duplicates)
{
	Console.WriteLine("Duplicates:");
	foreach (var duplicate in duplicates.DuplicateImages)
	{
		Console.WriteLine(
		   $"ImageName: {duplicate.ImageId}, Similarity: {duplicate.Similarity}");
	}

Çözüm

Bu gönderide, Aspose.Imaging Cloud’un yinelenen görüntü algılama yeteneklerini öğrendik. Kod örneklerini ve bu özelliği uygulamanıza nasıl uygulayacağınıza dair ayrıntıları gördük. Bu arada, bir sorunuz varsa veya daha fazla yardıma ihtiyacınız varsa, lütfen aşağıya bir yorum bırakmaktan veya ücretsiz destek forumunda bir soru göndermekten çekinmeyin. API’mizi sürekli olarak iyileştirmemize ve geliştirmemize yardımcı olur.

Ücretsiz denemeyi kullanarak Aspose.Imaging Cloud hakkında daha fazla bilgi edinmek için tek yapmanız gereken aspose.cloud’a kaydolmak. Kaydolduktan sonra, Aspose.Imaging Cloud’un aşağıdaki yararlı kaynaklarına göz atabilirsiniz.

İlgili Bağlantılar

Daha fazla bilgi edinmek için aşağıdaki bağlantıları ziyaret etmenizi öneririz: