การค้นหาภาพย้อนกลับเป็นเทคนิคที่ช่วยให้คุณค้นหารูปภาพที่มีลักษณะคล้ายกันโดยอ้างอิงจากภาพตัวอย่างของคุณ อาจมีกรณีการใช้งานมากมายในการใช้เครื่องมือค้นหาภาพย้อนกลับ กรณีการใช้งานที่พบบ่อยที่สุดมีดังต่อไปนี้:

  • ค้นหารูปภาพซ้ำและลบรูปภาพที่ซ้ำกัน
  • ค้นหาเนื้อหาที่มีรูปภาพคล้ายกัน
  • ค้นหาเนื้อหาที่ไม่เหมาะสม
  • ค้นหารูปภาพที่มีลายเซ็นดิจิทัล

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 ได้

ลิงก์ที่เกี่ยวข้อง

เราขอแนะนำให้เยี่ยมชมลิงก์ต่อไปนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ: