OpenCV(Python)中cv2.findHomography的输出

Aka*_*nes 7 python opencv

我在Python中使用OpenCV的findHomography函数(带有RANSAC)来查找两组点之间的转换。

查看文档,输出是一个掩码和一个转换矩阵。

该文档尚不清楚掩码代表什么以及矩阵的结构。

输出掩码中的1是适合找到的变换的点还是被忽略的点?您能解释一下3x3输出转换矩阵的组成吗?

在此先感谢您,如果我错过了一些解释此问题的文档,则对不起。

Kan*_*nad 5

根据我有限的搜索, findHomography() 返回的值具有内部值和异常值的状态,即它是表示找到对象的单应性后的mask​​匹配矩阵。

这个答案解决了你的第一个问题。

这个答案解决了什么是掩模以及它的尺寸是多少。

  • 这个答案实际上回答了OP关于面具的问题,这正是我真正想要的。最高支持率的答案提到简单地忽略面具,这是不正确的。 (4认同)

Jay*_*Jay 2

那么你需要用面膜做什么呢?因为不需要该字段,所以您不必放置任何掩码。

至于得到的矩阵。它被称为homography矩阵,或H矩阵,它表示图像平面中的一个点到另一个图像平面中的同一点的变换。

 X1 = H * X2
Run Code Online (Sandbox Code Playgroud)

该点是不同平面上的X1同一点 ( )。X2

因此,H 矩阵基本上是对图像 1 中的一个点与图像 2 中的 1 个点如何匹配的描述。

  • 掩模对于了解哪些内点对单应性做出了贡献很重要。在决定哪些图像重叠时,这对于图像拼接非常重要。如果这个答案提到面具的用途而不是完全驳回它,那就更好了。尽管扭曲图像可能不需要它,但最初的问题询问了这个答案没有解决的遮罩是什么。仅供参考,“H”不仅仅是“旋转”。它是平面到平面的映射。在特殊情况下,单应性确实简化为旋转矩阵,但通常情况并非如此。 (2认同)