c++ - getAffineTransform-opencv

标签 c++ opencv affinetransform

Q1。我想将点 (x1, x2, x3) 与点 (y1, y2, y3) 匹配。无论这些点的顺序如何,函数 getAffineTransform 是否总是返回相同的变换矩阵?

Q2。如果我知道这些点仅通过旋转和平移进行变换而没有任何缩放,那么从 getAffineTransform 返回的变换矩阵中移除缩放最简单的方法是什么。

最佳答案

A1,是的,只要两组点不共线,解就应该是唯一的。

A2,您的结果矩阵将采用以下形式:

[ A B C ]
[ D E F ]

C 是你在 x 中的翻译; F 是你在 y 中的翻译。两者都是尺度不变的。

如果你取最左边的项,这些对应于旋转和缩放

[A B]
[D E]

在下面的公式中:

[I cos(t)  -I sin(f)]
[J sin(t) J cos (F)]

其中 I 是 x 的比例,J 是 y 的比例。

要去除缩放比例,除以 A 和 B 除以 sqrt(A*A+B*B) 以及 D 和 E 除以 sqrt(D*D+E*E)

关于c++ - getAffineTransform-opencv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19731143/

相关文章:

c++ - 在类中声明数组成员的正确方法

c++ - 在不同 block 之间使用 C++ 类对象

c++ - 在 DirectX、C++ 中映射缓冲区

opencv - 从提取的前景中删除阴影

java - 如何从 AffineTransform 派生的形状对象中获取 'Get' 特定点

c++ - 如何在 ios 中使用 vImage 旋转和粘贴带有 alpha channel 的图像?

c++ - 在 Silverlight for Windows Embedded 中实现图形硬件加速

opencv - 从 OpenCV VideoCapture 中更改分辨率的剪切图像

python - 我的 CNN Keras 预测不正确,我不知道该怎么办

javascript - 仿射变换矩阵偏移