opencv estimateRigidTransform:如何获得全球规模?

时间:2014-05-26 16:22:01

标签: c++ opencv computer-vision transformation image-stabilization

我正在使用openCV的estimateRigidTransform来稳定一系列视频帧,效果非常好。

该函数返回2x3变换矩阵M:

|  a_11 a_12 b_1 |
| -a_12 a_11 b_2 |

据我所知,b元素代表翻译,a元素用于缩放和旋转。

我想做的是从M获得全局比例 - 表示相机缩放系数的值。如何从a值正确计算?


为了澄清我想要的更多内容,这里有一个例子。假设estimateRigidTransform计算下面第二帧关于第一帧的变换矩阵M:

这种情况下的全局缩放因子应该是2。我的问题是如何从M中获取此值?

1 个答案:

答案 0 :(得分:2)

好的,经过额外的搜索,我在这里找到了一个很好的答案:https://math.stackexchange.com/questions/13150/extracting-rotation-scale-values-from-2d-transformation-matrix

“缩放”由s_x和s_y表示。这两个值大致相等(因为摄像机拍摄的视频放大在两个方向都相同),所以我可以选择其中一个。