当使用OpenCV的findHomography
函数来估计两组点之间的单应性时,即使使用RANSAC或LMEDS,由于输入点内的离群值,您有时会得到不良的单应性。如何判断单应性矩阵是否可以接受?
// opencv java example:
Mat H = Calib3d.findHomography(src_points, dst_points, Calib3d.RANSAC, 10);
如何判断生成的3x3单应性矩阵是否可以接受?
我在这里寻找答案在这里在Stackoverflow和谷歌,无法找到它。
我发现这篇文章,但它是一个有点神秘对我说:
"The geometric error for homographies"
查看问题http://stackoverflow.com/questions/10972438/detecting-garbage-homographies-from-findhomography-in-opencv/10981249#10981249 –
如果您的相机移动受限,您可以尝试分解您的单应性和测试缩放比例,旋转和/或平移参数以获得最大值。其他方法:如果您知道(或采取约束)图像的大部分应该重叠,则可以在变形之后计算重叠,并确定它是否显然是错误的单应性。其他方法:如果您使用RANSAC,您可以根据inlier数量(和/或inlier/total的比率)决定单应是否应该被拒绝) – Micka
@Micka感谢您的帮助,我已经在使用RANSAC,相机运动是不受限制,我正在寻找方法来放弃单应性(主要是数学),然后再进行更重的计算,如应用单应性和检查重叠。 –