Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ cv::flann::knnSearch返回的距离单位是多少?_C++_Opencv_Knn_Flann - Fatal编程技术网

C++ cv::flann::knnSearch返回的距离单位是多少?

C++ cv::flann::knnSearch返回的距离单位是多少?,c++,opencv,knn,flann,C++,Opencv,Knn,Flann,我正在搜索k冲浪描述符的n近邻。我通过在描述符矩阵上创建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); 在此之后,我必须将每个最近邻的返回距离与中心特征点的大小进行比较。现在

我正在搜索
k
冲浪描述符的
n
近邻。我通过在描述符矩阵上创建
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
转换为距离单位?

我很抱歉这个问题的措辞不好,我的英语不是很好。

你不能


cv::flann::knnSearch返回冲浪空间中的距离,换句话说,它是图像块之间的相似性(即,此角看起来更像此角,而不是此斑点)。关键点之间的距离只是像素距离(就像使用显示器上的标尺-以英寸为单位的距离)。

我认为knnSearch返回的是标准化距离,因为冲浪描述符是标准化的。事实上,如果显示KNN搜索距离,它们都在0和1之间。那么现在的问题是,如何将标准化距离与正常距离或大小进行比较?请定义“正常距离或大小”的含义。以像素为单位的正常距离或大小。冲浪关键点的大小是以像素为单位的,至少我是这么认为的。再说一遍,冲浪匹配与大小和像素没有任何共同之处。完全我想,你把冲浪的两种含义混为一谈了。第一个-你的-是“图像中以半径和中心坐标为中心的圆”。第二个-knn匹配使用的是“对应圆的描述符”。当你们作为一个人比较两张照片时,你们说的是内容的相似性(这两张照片都是猫的,还是不是),而不是照片的物理尺寸。与knn匹配的情况相同。