การค้นหาภาพย้อนกลับใน Java ช่วยให้นักพัฒนาสามารถค้นหาภาพที่คล้ายกันในคอลเล็กชันโดยอิงจากเนื้อหาภาพแทนที่จะต้องพึ่งพาคีย์เวิร์ดหรือข้อมูลเมตา คุณลักษณะนี้มีประโยชน์อย่างยิ่งในแอปพลิเคชัน เช่น การค้นหาภาพ ระบบการจัดการเนื้อหา และการจัดการทรัพยากรดิจิทัล ด้วยการใช้ประโยชน์จากไลบรารีการค้นหา นักพัฒนา Java สามารถนำความสามารถในการค้นหาภาพย้อนกลับมาใช้ได้อย่างง่ายดาย เพื่อค้นหาภาพที่ตรงกันอย่างรวดเร็ว ในบทความนี้ เราจะกล่าวถึงวิธีค้นหาภาพย้อนกลับโดยใช้ Java และให้ตัวอย่างโค้ดเพื่อช่วยคุณเริ่มต้น ฟังก์ชันนี้มีประโยชน์โดยเฉพาะในการจัดการรูปแบบภาพต่างๆ รวมถึงไฟล์ PNG, JPEG และ ZIP เพื่อให้แน่ใจว่าสามารถทำงานร่วมกันได้อย่างราบรื่นบนแพลตฟอร์มและประเภทไฟล์ต่างๆ
ขั้นตอนในการค้นหาภาพย้อนกลับโดยใช้ Java
- รวมไลบรารี GroupDocs.Search for Java เข้าในโครงการของคุณเพื่อเปิดใช้งานฟังก์ชันการค้นหาภาพย้อนกลับ
- เริ่มต้นวัตถุ Index โดยระบุโฟลเดอร์ที่จะเก็บดัชนี
- กำหนดค่า IndexingOptions ของภาพเพื่อให้สามารถจัดทำดัชนีรูปภาพไอเท็มคอนเทนเนอร์ รูปภาพที่ฝัง และรูปภาพแบบสแตนด์อโลนได้
- เพิ่มเอกสารไปยังโฟลเดอร์ดัชนีโดยใช้ตัวเลือกการจัดทำดัชนีภาพที่กำหนดค่าไว้
- ตั้งค่า ImageSearchOptions เช่น ความแตกต่างของแฮช จำนวนผลลัพธ์สูงสุด และตัวกรองสำหรับเอกสารที่จะค้นหา
- สร้างรูปภาพอ้างอิงสำหรับการค้นหาโดยกำหนดเส้นทางไปยังไฟล์รูปภาพด้วยวิธี SearchImage.create
- ดำเนินการค้นหารูปภาพภายในดัชนีโดยใช้รูปภาพอ้างอิงและตัวเลือกการค้นหาที่กำหนดไว้ผ่าน Index.search
- ทำซ้ำผ่านผลลัพธ์การค้นหาและแสดงรายละเอียดของแต่ละภาพที่พบ
ในการใช้งานฟังก์ชันนี้ กระบวนการเริ่มต้นด้วยการสร้างดัชนีที่จัดเก็บรูปภาพพร้อมกับข้อมูลเมตาที่เกี่ยวข้อง คลาส IndexingOptions
ใช้เพื่อเปิดใช้งานการจัดทำดัชนีสำหรับประเภทรูปภาพต่างๆ เช่น รูปภาพที่ฝังไว้ รูปภาพไอเท็มคอนเทนเนอร์ และรูปภาพเดี่ยว หลังจากจัดทำดัชนีแล้ว การค้นหาสามารถดำเนินการได้โดยใช้คลาส SearchImage
ซึ่งช่วยให้คุณระบุรูปภาพอ้างอิงและค้นหาผลลัพธ์ที่ตรงกันในเอกสารที่สร้างดัชนี คลาส ImageSearchOptions
ให้การปรับแต่งเพิ่มเติมสำหรับการค้นหา รวมถึงการกำหนดขีดจำกัดจำนวนผลลัพธ์และระบุประเภทของเอกสารที่จะค้นหา วิธีนี้ช่วยให้ค้นหารูปภาพตามเนื้อหาได้อย่างมีประสิทธิภาพในแอปพลิเคชัน Java ด้านล่างนี้คือ โค้ด Java สำหรับการค้นหารูปภาพย้อนกลับ ซึ่งแสดงวิธีการใช้คุณลักษณะเหล่านี้ในโครงการของคุณ
โค้ดสำหรับดำเนินการค้นหาภาพย้อนกลับโดยใช้ Java
import com.groupdocs.search.Index; | |
import com.groupdocs.search.SearchDocumentFilter; | |
import com.groupdocs.search.common.SearchImage; | |
import com.groupdocs.search.licenses.License; | |
import com.groupdocs.search.options.ImageSearchOptions; | |
import com.groupdocs.search.options.IndexingOptions; | |
import com.groupdocs.search.results.FoundImageFrame; | |
import com.groupdocs.search.results.ImageSearchResult; | |
public class PerformReverseImageSearchusingJava { | |
public static void main(String[] args) throws Exception { | |
// Apply the license to remove the restrictions | |
// imposed by the Search library | |
License license = new License(); | |
license.setLicense("GroupDocs.Search.lic"); | |
// The path where the index will be stored | |
String indexFolder = "c:\\MyIndex\\"; | |
// The folder containing the documents you want to search | |
String documentsFolder = "c:\\MyDocuments\\"; | |
// Creating an index | |
Index index = new Index(indexFolder); | |
// Setting the image indexing options | |
IndexingOptions indexingOptions = new IndexingOptions(); | |
indexingOptions.getImageIndexingOptions().setEnabledForContainerItemImages(true); | |
indexingOptions.getImageIndexingOptions().setEnabledForEmbeddedImages(true); | |
indexingOptions.getImageIndexingOptions().setEnabledForSeparateImages(true); | |
// Indexing documents in a document folder | |
index.add(documentsFolder, indexingOptions); | |
// Setting the image search options | |
ImageSearchOptions imageSearchOptions = new ImageSearchOptions(); | |
imageSearchOptions.setHashDifferences(10); | |
imageSearchOptions.setMaxResultCount(10000); | |
imageSearchOptions.setSearchDocumentFilter(SearchDocumentFilter | |
.createFileExtension(".zip", ".png", ".jpg")); | |
// Creating a reference image for search | |
SearchImage searchImage = SearchImage.create("c:\\MyDocuments\\image.png"); | |
// Searching in the index | |
ImageSearchResult result = index.search(searchImage, imageSearchOptions); | |
System.out.print("Images found: " + result.getImageCount()); | |
for (int i = 0; i < result.getImageCount(); i++) { | |
FoundImageFrame image = result.getFoundImage(i); | |
System.out.print(image.getDocumentInfo().toString()); | |
} | |
} | |
} |
การดำเนินการค้นหารูปภาพตามเนื้อหาโดยใช้ Java ถือเป็นคุณสมบัติที่สำคัญสำหรับการค้นหารูปภาพที่คล้ายคลึงกันตามเนื้อหาอย่างมีประสิทธิภาพ ช่วยให้แอปพลิเคชันค้นหารูปภาพได้อย่างรวดเร็วและแม่นยำในสภาพแวดล้อมที่หลากหลาย ตั้งแต่ซอฟต์แวร์เดสก์ท็อปไปจนถึงบริการบนคลาวด์ การรวมไลบรารีการค้นหาสำหรับการสร้างดัชนีและการค้นหารูปภาพช่วยให้มั่นใจได้ว่าแพลตฟอร์มจะไม่ขึ้นกับใคร ทำให้เข้ากันได้กับ Windows, macOS และ Linux ขณะเดียวกันก็สามารถปรับขนาดเพื่อจัดการชุดข้อมูลรูปภาพขนาดใหญ่ได้ ด้วยการใช้ประโยชน์จากคุณลักษณะเหล่านี้ นักพัฒนาสามารถสร้างระบบค้นหารูปภาพที่มีประสิทธิภาพซึ่งช่วยปรับปรุงประสบการณ์ของผู้ใช้และเพิ่มประสิทธิภาพการจัดการเนื้อหาบนแพลตฟอร์มและแอปพลิเคชันต่างๆ แนวทางนี้ไม่เพียงแต่ช่วยเพิ่มประสิทธิภาพในการค้นหาเท่านั้น แต่ยังช่วยลดความซับซ้อนในการจัดการไลบรารีรูปภาพจำนวนมากอีกด้วย ทำให้มั่นใจได้ว่าจะบูรณาการเข้ากับเวิร์กโฟลว์ที่มีอยู่ได้อย่างราบรื่น
ก่อนหน้านี้ เราได้เผยแพร่คำแนะนำโดยละเอียดเกี่ยวกับการดำเนินการค้นหานิพจน์ทั่วไปโดยใช้ Java หากต้องการคำแนะนำทีละขั้นตอนอย่างครบถ้วน โปรดอ่านบทความเชิงลึกของเราเกี่ยวกับวิธีดำเนินการ การค้นหาด้วยนิพจน์ทั่วไปโดยใช้ Java