如何检索findHomography和RANSAC计算出的同分布点?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检索findHomography和RANSAC计算出的同分布点?相关的知识,希望对你有一定的参考价值。

我是OpenCV的新手。我注意到

Mat H = findHomography( obj, scene, CV_RANSAC );

有助于找到同源异构 H 使用RANSAC。

但是,我需要RANSAC之后的 "净化 "匹配点的位置,我根本找不到可以使用的函数。我需要一个使用RANSAC并返回RANSAC后匹配点位置的函数。

答案

查找同型异构 可以选择提供异常值和离群值的掩码(异常值就是你所说的 纯化 匹配)。)

C++: Mat findHomography(InputArray srcPoints, InputArray dstPoints, int method=0, double ransacReprojThreshold=3, OutputArray mask=noArray() )

Python: cv2.findHomography(srcPoints, dstPoints[, method[, ransacReprojThreshold[, mask]]) → retval, mask

您可以只使用离群值(即具有相应的 mask 值等于1)。

另一答案

当你从finghomography得到真正的H33结果时,为什么不将匹配点从遮罩到帧进行透视变换,那么你就会得到许多 "纯化 "的匹配点。

以上是关于如何检索findHomography和RANSAC计算出的同分布点?的主要内容,如果未能解决你的问题,请参考以下文章

(转载)利用SIFT和RANSAC算法(openCV框架)实现物体的检测与定位,并求出变换矩阵(findFundamentalMat和findHomography的比较) 置顶

findHomography(src_points, dst_points, CV_RANSAC)

OpenCV RANSAC 每次都返回相同的转换

opencv cv2.findHomography sift、surf特征匹配 单应性矩阵理解

如何抑制 OpenCV 错误消息

基于RANSAC的点云面分割算法