gpt4 book ai didi

math - 平面中的变形点

转载 作者:太空宇宙 更新时间:2023-11-03 21:58:41 25 4
gpt4 key购买 nike

Point::(x y) 已知。

我在三角形区域内有点。
我知道顶点在初始位置和最终位置的坐标。我知道三角形区域内所有点的初始坐标。

现在我想找出三角形区域内所有点的最终坐标。

下图显示了初始位置和最终位置的点。

enter image description here enter image description here

谁能告诉我如何在 OpenCV 和 C++ 平台上做到这一点?

我也可以对任意形状的轮廓执行此操作吗?

最佳答案

我正在使用 3D 坐标来考虑

  • 向量翻译[u v]
  • matrixabcd做的二维线性变换

整体变换矩阵的形式为

    [ a b u]
M = [ c d v]
[ 0 0 1]
  1. 取 3 个点 A=[x1 y1 1]B=[x2 y2 1]C=[x3 y3 1]从三角形
  2. 将它们与变换后的位置进行比较 A' = [x1' y1' 1]B'=[x2' y2' 1]C '=[x3' y3' 1]。 Id est:计算得到转换矩阵 M 以便 A' = M AB' = M BC' = M C
  3. 对每个输入点应用x -> M x

编辑:使用 Translation in transformation matrix 将翻译合并到矩阵 M

编辑:“做你的数学”似乎对你来说不清楚。

你会发现这 3 个等式可以写成:

[x1' x2' x3']     [x1 x2 x3]
[y1' y2' y3'] = M [y1 y2 y3]
[1 1 1 ] [1 1 1 ]

X' = M X

或者

M = X . X'^-1

是的,OpenCV 在矩阵上有一个函数 inv()

关于math - 平面中的变形点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15109182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com