【发布时间】:2012-06-13 21:44:02
【问题描述】:
我在点列表中使用findHomography,并将结果发送到warpPerspective。
问题是有时结果是完全垃圾,结果图像由奇怪的灰色矩形表示。
我如何检测findHomography 何时向我发送错误结果?
【问题讨论】:
标签: opencv computer-vision homography
我在点列表中使用findHomography,并将结果发送到warpPerspective。
问题是有时结果是完全垃圾,结果图像由奇怪的灰色矩形表示。
我如何检测findHomography 何时向我发送错误结果?
【问题讨论】:
标签: opencv computer-vision homography
您可以对输出执行多项健全性测试。在我的头顶上:
导致垃圾结果的常见错误是输入和输出点列表的错误排序,这导致拟合例程使用错误的对应关系工作。检查您的索引是否正确。
【讨论】:
但这取决于您用来计算单应性的点对应... 试想一下,您正在尝试找到一种将线映射到线(从一个平面到另一个平面)的转换,因此点对应的任何可能配置都不会为您提供创建漂亮图像的单应性。 单应性甚至可能将某些点映射到无穷大。
【讨论】:
了解退化单应性情况是关键。例如,如果您的点共线或接近共线,则无法获得良好的单应性。此外,巨大的灰色方块可能表示极端缩放。这两种情况都可能源于您最终的单应性计算中的内点很少或映射错误。
为确保这种情况永远不会发生:
1. 确保两幅图像中的点分布良好。
2.确保至少有10-30个对应关系(如果噪音很小,4个就足够了)。
3. 确保点匹配正确且变换为单应性。
要查找错误的单应性,请将找到的 H 应用于原始点,并查看与预期点的分离,即 |x2-H*x1| < Tdist,其中 Tdist 是距离误差的阈值。如果只有少数点满足此阈值,则您的单应性可能不好,并且您可能违反了上述要求之一。
【讨论】: