2016-06-11 11 views
0

opencvが新しく、C#のラッパーとしてEMGUを使用しています。私は、画像データベースからクエリ画像のために最もよく似た画像を取得しようとしています。Opencv SurfとFlannIndexで画像データベースを検索する

私は例を示して、作業を行うにはhereと表示されています。

画像特徴を検出するためにSURF検出器を使用し、次に、マッチングのために1つのスーパーディスクリプタマトリックス内のすべてのデータベース画像記述子を結合する。

次にFlann Indexを使用して、クエリ画像の最近傍を検索します。

距離行列 "dists"には常に "0"の値が含まれているという問題があります。

flannIndex.KnnSearch(queryDescriptors, indices, dists, 2, 24);

答えて

1

してください、あなたのプロジェクトに以下のコード:

if (img.IndexStart <= indices[i, 0] && img.IndexEnd >= indices[i, 0]) 
        //if (img.IndexStart <= i && img.IndexEnd >= i) 
        { 
         img.Similarity++; 
         break; 
        } 

変更するには:

if (img.IndexStart <= indices[i, 1] && img.IndexEnd >= indices[i, 1]) 
        //if (img.IndexStart <= i && img.IndexEnd >= i) 
        { 
         img.Similarity++; 
         break; 
        }