Javaを使用して逆画像検索を実行する

Java で逆画像検索 を実行すると、開発者はキーワードやメタデータに頼るのではなく、ビジュアル コンテンツに基づいてコレクション内の類似画像を見つけることができます。この機能は、画像検索、コンテンツ管理システム、デジタル アセット管理などのアプリケーションで特に役立ちます。Search ライブラリを活用することで、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を使用した正規表現検索 の実行方法に関する詳細な記事をご覧ください。

 日本語