gpt4 book ai didi

opencv - 如何从 OpenCV 中的欧几里德变换中的 2x3 矩阵中找到枢轴点

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

我有两张图片:

Image One Image Two

使用 cv2.findTransformECC (im1,im2,warp_matrix, warp_mode, criteria) 我得到这个转换矩阵:

[[   0.70637488    0.70783788  -86.60842133]
[ -0.70783788 0.70637488 137.01171875]]

如何使用该矩阵找到图像旋转的点?

这是矩阵表示的内容:

enter image description here

我知道我可以使用 X、Y 平移的斜边以及旋转角度来计算等腰三角形。但是我如何使用等腰三角形(红色)找到平移中心的 X 和 Y(绿色)?三角函数是找到枢轴点的唯一方法吗?

Example

最佳答案

所以你有一个变换矩阵

/ a b  tx \
\ c d ty /

并且您想将其转换为围绕某个枢轴旋转的表示。围绕枢轴旋转 (px, py) 可以表示为

T = T(p) R T(-p)

如果你展开这个,你会得到

/ a b  tx \  =      / a b  px-apx-bpy \
\ c d ty / \ c d py-cpx-dpy /

如果选择相同的旋转,第一个 2x2 矩阵已经相等。最后一列为您提供了一个线性方程组。一般的解决方案是(忽略特殊情况):

px = (tx - d tx + b ty) / (a + b c + d - a d - 1)
py = (ty + c tx - a ty) / (a + b c + d - a d - 1)

对于您的矩阵,这给出:

px = 121.842
py = 172.899

关于opencv - 如何从 OpenCV 中的欧几里德变换中的 2x3 矩阵中找到枢轴点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39253968/

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