2014-06-19 1 views
2

k 가장 근접한 n SURF 서술자를 검색 중입니다. 설명자 행렬에 cv::flann::index 개체를 만들어 가장 가까운 이웃을 계산합니다.cv :: flann :: knnSearch가 반환하는 거리 단위는 무엇입니까?

cv::flann::Index index(desc,cv::flann::KDTreeIndexParams(4));//cv::Mat desc: holds all the descriptors 

index.knnSearch(centralDescriptor,indicesNN,distsNN,10); 

이 후 가장 가까운 이웃의 반환 된 거리를 중앙 피쳐 지점의 크기와 비교해야합니다. 이제 문제는 중심 특징점의 크기가 해당 cv::KeyPoint에 저장되고 cv::KeyPoint::size의 단위가 픽셀이므로 거리가 모두 부동 소수점이고 0보다 작은 픽셀입니다.

질문 : cv::flann::knnSearch에 의해 반환 된 거리를 픽셀로 변환하거나 cv::KeyPoint::size을 거리 단위로 변환하려면 어떻게해야합니까?

질문의 표현이 좋지 않아 죄송합니다. 제 영어 실력이 좋지 않습니다.

답변

0

수 없습니다.

cv :: flann :: knnSearch는 SURF 공간에서 거리를 반환합니다. 즉 이미지 패치 간의 유사성 (즉,이 모서리는이 BLOB보다 더 비슷합니다)입니다. 그리고 키포인트 사이의 거리는 단지 픽셀 거리입니다 (모니터의 사용 자처럼 - 인치 거리).

+0

SURF 기술자가 정규화되어 있기 때문에 knnSearch가 정규화 된 거리를 반환하고 있다고 생각했습니다. 실제로 knnSearch 거리를 표시하면 0과 1 사이에 있습니다. 이제 정규화 된 거리와 정상 거리 또는 크기를 비교하는 방법이 궁금합니다. – user5008

+0

"정상 거리 또는 크기"란 무엇을 의미하는지 정의하십시오. –

+0

픽셀 단위와 동일합니다. SURF 키포인트의 크기는 픽셀 단위로 표시됩니다. 적어도 생각한 것입니다. – user5008

관련 문제