Java를 사용하여 역방향 이미지 검색 수행

Java에서 역방향 이미지 검색을 수행하면 개발자는 키워드나 메타데이터에 의존하지 않고 시각적 콘텐츠를 기반으로 컬렉션에서 유사한 이미지를 찾을 수 있습니다. 이 기능은 이미지 검색, 콘텐츠 관리 시스템, 디지털 자산 관리와 같은 애플리케이션에서 특히 유용합니다. 검색 라이브러리를 활용하면 Java 개발자는 역방향 이미지 검색 기능을 쉽게 구현하여 일치하는 이미지를 빠르게 찾을 수 있습니다. 이 문서에서는 Java를 사용하여 역방향 이미지 검색을 수행하는 방법을 다루고 시작하는 데 도움이 되는 코드 예제를 제공합니다. 이 기능은 PNG, JPEG, ZIP 아카이브를 포함한 다양한 이미지 형식을 처리하는 데 특히 유용하여 다양한 플랫폼과 파일 유형에서 원활한 호환성을 보장합니다.

Java를 사용하여 역방향 이미지 검색을 수행하는 단계

  1. 역방향 이미지 검색 기능을 활성화하려면 GroupDocs.Search for Java 라이브러리를 프로젝트에 통합하세요.
  2. 인덱스가 저장될 폴더를 지정하여 Index 개체를 초기화합니다.
  3. 컨테이너 항목 이미지, 내장 이미지 및 독립 실행형 이미지에 대한 인덱싱을 허용하도록 이미지 인덱싱 옵션을 구성합니다.
  4. 구성된 이미지 인덱싱 옵션을 사용하여 인덱스 폴더에 문서 추가
  5. 해시 차이, 최대 결과 수, 검색할 문서 필터 등의 ImageSearchOptions를 설정합니다.
  6. SearchImage.create 메서드를 사용하여 이미지 파일에 대한 경로를 정의하여 검색을 위한 참조 이미지를 만듭니다.
  7. Index.search를 통해 참조 이미지와 정의된 검색 옵션을 사용하여 인덱스 내에서 이미지 검색을 실행합니다.
  8. 검색 결과를 반복하고 찾은 각 이미지의 세부 정보를 표시합니다.

이 기능을 구현하기 위해 프로세스는 연관된 메타데이터와 함께 이미지를 저장하는 인덱스를 만드는 것으로 시작합니다. 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를 사용한 정규 표현식 검색을 수행하는 방법에 대한 심층적인 기사를 살펴보세요.

 한국인