1

次の情報を持つサーフポイントpoint=detectSURFFeatures(image) を取得する関数を適用すると、matlab を使用してコンテンツベースの画像検索プロジェクトに取り組んでいます。83*1

         `Scale: [83x1 single]
          SignOfLaplacian: [83x1 int8]
          Orientation: [83x1 single]
          Location: [83x2 single]
          Metric: [83x1 single]
          Count: 83`

何千もの画像を含むデータベース内の各画像を表す (特徴的で固定された) 特徴ベクトルを抽出する方法を知る必要があります。
これがデータベースのサンプルです。(王データベース)

4

2 に答える 2

1

現在、imread次のように画像を読み取るために使用しています。Matlab のdetectSURFFeatures関数は、グレースケール画像でのみ機能します。

I = rgb2gray( imread( '434.jpg' ) );

この行を実行して、SURF 機能を取得できます。

points = detectSURFFeatures( I );

以下を使用して、サーフ フィーチャをプロットできます。

imshow( I );
hold on;
plot( point.selectStrongest(10) );
hold off;

これが私が扱った画像の視覚化です。

ここに画像の説明を入力

このpointsオブジェクトを印刷すると、41 個の機能を示す次のプロパティを取得できます。

          Scale: [41x1 single]
SignOfLaplacian: [41x1 int8]
    Orientation: [41x1 single]
       Location: [41x2 single]
         Metric: [41x1 single]
          Count: 41

すべてのグレースケール画像がセル オブジェクトcellimg(画像ごとに 1 つのセル要素) に格納されている場合は、次のようにそれぞれに対して実行できdetectSURFFeaturesます。

cellsurf = cellfun( @(I) detectSURFFeatures( I ), cellimg, 'UniformOutput', false );

の各要素にcellsurfは SURF ポイントが含まれます。各イメージを識別する独特で固定された特徴のセットが必要なため、 で各イメージの最も強いポイントを選択できますcellsurf。機能の上位n数または set を使用できますn = min( points )。次のコードを使用して、特徴の最小数を計算します。

n = min( cellfun( @(S) S.Count, cellsurf ) );

selectStrongest次に、 の各セルを実行して、最強のポイントを選択できますcellsurf

F = cellfun( @(S) S.selectStrongest( n ), cellsurf, 'UniformOutput', false);

変数Fには一定の機能セットが含まれます。nそれに応じて、必要な最も強力な機能の数を変更できます。2 つの特徴セットを一致させるには、組み込みのmatchFeatures 関数を使用できます。

ノート

  • さらに機能が必要な場合は、detectSURFFeatures関数を呼び出すときに別の 'MetricThreshold' パラメーターを指定できます。
  • detectBRISKFeatures次の関数を使用してdetectFASTFeatures、SURF の代わりに他の機能アルゴリズムを使用できます。detectHarrisFeaturesdetectMinEigenFeaturesdetectMSERFeatures
于 2015-04-21T23:13:39.970 に答える
1

まず第一にdetectSURFFeatures、関心点の位置、縮尺、および向きのみを提供します。また、 を呼び出す必要がextractFeaturesあります。これにより、各関心点の周りのイメージ パッチを記述するベクトルである SURF 記述子が得られます。

ここで、画像を表す一連のパッチ記述子を単一のベクトルに変換しようとしていますが、それを行う方法は複数あります。人気のあるアプローチは、bag of features、別名 bag of visual words と呼ばれます。

于 2015-04-22T13:56:50.033 に答える