การค้นหาภาพย้อนกลับเป็นเทคนิคที่ช่วยให้คุณค้นหารูปภาพที่มีลักษณะคล้ายกันโดยอ้างอิงจากภาพตัวอย่างของคุณ อาจมีกรณีการใช้งานมากมายในการใช้เครื่องมือค้นหาภาพย้อนกลับ กรณีการใช้งานที่พบบ่อยที่สุดมีดังต่อไปนี้:
- ค้นหารูปภาพซ้ำและลบรูปภาพที่ซ้ำกัน
- ค้นหาเนื้อหาที่มีรูปภาพคล้ายกัน
- ค้นหาเนื้อหาที่ไม่เหมาะสม
- ค้นหารูปภาพที่มีลายเซ็นดิจิทัล
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 ได้
- Web API Explorer → ตัวอย่างสดของ API
- เอกสารสำหรับนักพัฒนา → เอกสารออนไลน์
- ตัวอย่างและ SDK → ตัวอย่างโค้ดบน Github
ลิงก์ที่เกี่ยวข้อง
เราขอแนะนำให้เยี่ยมชมลิงก์ต่อไปนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ: