opencv - knnMatch 要求 k>1 才能得到好的结果?

标签 opencv sift surf

我正在使用 SURF,我正在尝试两者

FlannBasedMatcher

BruteForceMatcher

我看到我需要设置好匹配

matcher.knnMatch(,,2); // with k=2 (At least)

如果我设置 k = 1,我不会得到该关键点的第一个距离较短的匹配项。
有什么原因吗?

最佳答案

knnMatch 将您的数据分成 k 组。如果k=1,你会把它放在一个大组里。

对于单个分区,算法很难计算出与第二个分区的距离。所以根本就没有距离可以计算。

关于opencv - knnMatch 要求 k>1 才能得到好的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11142643/

相关文章:

python - OpenCV Python : Reading and setting every pixel too slow

c++ - OpenCV - 从 yml 加载描述符 - 没有匹配的函数调用

c++ - 体育赛事期间的 OpenCV 横幅匹配

opencv - 如何使用OpenCV在ROS上上传 map 图像?

opencv - 保存IPL_DEPTH_IMAGE供以后处理

python - 使用 PyQt 捕获网络摄像头视频

python-2.7 - DrawKeypoints 函数不适用于 OpenCV3.0/Python 2.7

python - 从 SIFT BF-Match 的多个图像中找到最匹配的图像

python - AttributeError : module 'cv2.cv2' has no attribute 'SURF_create' , 2.模块 'cv2.cv2'没有属性 'xfeatures2d'

OpenCV 冲浪和异常值检测