我正在搜索k
n
SURF描述符的最近邻居。我通过在描述符矩阵上创建cv::flann::index
对象来计算最近邻居。
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
的单位是像素,其中距离都是浮点数并且小于零。
问题:如何将cv::flann::knnSearch
返回的距离转换为像素或将cv::KeyPoint::size
转换为距离单位?
我很抱歉问题写得不好,我的英语不是很好。
答案 0 :(得分:0)
你做不到。
cv :: flann :: knnSearch返回SURF空间中的距离,换句话说,它是图像块之间的相似性(即,这个角看起来更像这个角,而不是这个blob)。关键点之间的距离只是像素距离(就像显示器上的使用标尺 - 以英寸为单位的距离)。