2016-06-11 10 views
0

opencv를 처음 사용하고 EMGU를 C#의 래퍼로 사용했습니다. 나는 이미지 데이터베이스에서 쿼리 이미지에 대한 가장 유사한 이미지를 얻으려고합니다.Opencv Surf와 FlannIndex로 이미지 데이터베이스에서 이미지 찾기

예를 들어 작업을 수행하려면 here으로 표시됩니다.

SURF 감지기를 사용하여 이미지 기능을 감지 한 다음 일치시키기 위해 하나의 Super descriptors 행렬에있는 모든 데이터베이스 이미지 설명자를 결합합니다.

그런 다음 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; 
        }