image – 使用OpenCV检测SURF或SIFT算法中的异常值

哪种方法最好比较两个图像并丢弃异常点?在find_obj.cpp opencv示例中,它们使用FLANN,但不丢弃异常值.

我见过一些方法,比如使用Kmeans或图表.

最佳答案 有一种相当可靠和有效的方法来拒绝噪声点并确定您感兴趣的点之间的转换.通常用于拒绝异常值的算法称为RANSAC(http://en.wikipedia.org/wiki/RANSAC),用于确定转换的算法可以采用多种形式,但是最新的技术水平被称为五点算法,可以找到
here – 一个MATLAB实现可以找到
here.请注意,即使你不关心两个图像之间的确切旋转,你也需要确定转换 – 这个是如何识别异常值.

不幸的是,我不知道两者结合的成熟实施;您可能需要自己做一些工作来实现RANSAC并将其与五点算法集成.

OpenCV有一个对你的任务来说太过分的实现(意味着它可以工作但需要的时间比必要的多)但是已经准备好开箱即用了.感兴趣的函数叫做cv :: findFundamentalMat(http://opencv.willowgarage.com/documentation/cpp/camera_calibration_and_3d_reconstruction.html#cv-findfundamentalmat)

点赞