البحث العكسي عن الصور هو تقنية تساعدك على البحث عن صور متشابهة بصريًا استنادًا إلى الصورة النموذجية الخاصة بك. قد يكون هناك الكثير من حالات الاستخدام لتطبيق محرك البحث العكسي عن الصور. حالات الاستخدام الأكثر شيوعًا هي التالية:

  • ابحث عن الصورة المكررة وقم بإزالة الصور المكررة
  • البحث عن محتوى صور مشابهة
  • البحث عن المحتوى غير اللائق
  • البحث عن الصور الموقعة رقميا

واجهة برمجة تطبيقات البحث عن الصور العكسية

تتوفر العديد من التطبيقات للبحث عن الصور استنادًا إلى تقنيات البحث العكسي عن الصور. ومع ذلك، إذا كنت تبحث عن حل REST API للبحث العكسي عن الصور، فأنت في المكان الصحيح. يوفر Aspose.Imaging Cloud محرك بحث قوي يساعد المطورين على إضافة ميزات البحث العكسي عن الصور في تطبيقاتهم على أي منصة بسلاسة. يقارن مجموعة الصور المصدر، التي تحتوي على صورة واحدة على الأقل، مع العديد من الصور الأخرى. ونتيجة لهذه المقارنة، تحصل على قائمة بالصور الأكثر تشابهًا وفقًا للشروط التالية:

  • درجة التشابه
  • الحد الأدنى للتشابه
  • خوارزمية المقارنة

حاليًا، يدعم محرك البحث Aspose.Imaging Cloud البحث عن الصور استنادًا إلى المحتوى، والبحث عن الصور المكررة، والبحث عن الصور باستخدام العلامات المسجلة المخصصة، ومقارنة الصور واكتشاف التشابه وعمليات استخراج ميزات الصور.

سنقدم لك هنا نظرة عامة سريعة على الميزة للعثور على الصور المكررة باستخدام واجهة برمجة تطبيقات REST الخاصة بـ Aspose.Imaging Cloud. ومع ذلك، يمكنك مراجعة وثائق Aspose.Imaging Cloud للحصول على قائمة كاملة بالميزات وتفاصيلها.

كيفية العثور على الصور المكررة؟

اكتشاف الصور المكررة، هذا هو الاستخدام الأكثر شيوعًا لمحرك البحث العكسي عن الصور. يحتاج العديد من العملاء إلى فرز مكتبات الصور الخاصة بهم من خلال العثور على صور متشابهة وترك صورة واحدة أو أكثر مع حذف الصور المتبقية.

سنوضح لك مدى سهولة العثور على الصور المكررة باستخدام واجهة برمجة تطبيقات Aspose.Imaging Cloud. نستخدم خوارزمية AKAZE لاكتشاف الميزات وخوارزمية RandomBinaryTree لمطابقة الميزات في المثال. سنتبع الخطوات التالية للعثور على الصور المكررة:

  • تحميل الصور المصدرية إلى التخزين
  • إنشاء سياق البحث
  • استخراج ميزات الصورة
  • البحث عن الصور المكررة

تحميل الصور إلى التخزين

// تحميل الصور المدخلة إلى التخزين السحابي
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 للكشف عن الصور المكررة. لقد رأينا عينات التعليمات البرمجية والتفاصيل حول كيفية تنفيذ هذه الميزة في تطبيقك. وفي الوقت نفسه، إذا كان لديك سؤال، أو كنت بحاجة إلى مزيد من المساعدة، فلا تتردد في ترك تعليق أدناه أو نشر سؤال في منتدى الدعم المجاني. يساعدنا ذلك على تحسين واجهة برمجة التطبيقات لدينا وتنقيحها باستمرار.

لمعرفة المزيد عن Aspose.Imaging Cloud باستخدام نسخة تجريبية مجانية، كل ما عليك فعله هو التسجيل في aspose.cloud. بمجرد التسجيل، يمكنك الاطلاع على الموارد المفيدة التالية لـ Aspose.Imaging Cloud.

روابط ذات صلة

ننصحك بزيارة الروابط التالية لمعرفة المزيد عن: