2016-06-11 82 views
0

我是新來opencv和使用EMGU作爲包裝在C#中。我試圖從圖像數據庫中獲取查詢圖像的最佳相似圖像。Opencv衝浪和FlannIndex在圖像數據庫中查找圖像

我跟進示例here來做這項工作。

它使用SURF檢測器檢測圖像特徵,然後將所有數據庫圖像描述符合併到一個超描述符矩陣中進行匹配。

然後它使用Flann索引查找查詢圖像的最近鄰居。

問題是距離矩陣「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; 
        }