【发布时间】:2016-09-01 23:49:18
【问题描述】:
我有两张图片:
使用cv2.findTransformECC (im1,im2,warp_matrix, warp_mode, criteria) 我得到这个变换矩阵:
[[ 0.70637488 0.70783788 -86.60842133]
[ -0.70783788 0.70637488 137.01171875]]
如何使用该矩阵找到图像旋转的点?
这是矩阵所代表的:
我知道我可以使用 X、Y 平移的斜边以及旋转角度来计算等腰三角形。但是如何使用该等腰三角形(红色)来找到平移中心的 X 和 Y(绿色)?三角函数是找到支点的唯一方法吗?
【问题讨论】:
-
旋转(以及整个变换)的原点是定义输入图像原点的位置,图像中 (0,0) 的位置:
[x' y']^T := W * [x y 1]^Tdocs.opencv.org/3.0-beta/modules/video/doc/…跨度> -
@BeyelerStudios - 感谢您的评论。我不确定我明白你在说什么。我正在寻找翻译所围绕的点。例如,在图中,有两个黑色方块(假设它们是 10x10)。其中一个黑色方块以 5x 5y 作为轴心点旋转 45 度。 Opencv 给了我平移(绿色)和角度,我如何找到那个枢轴点?
-
不,它是围绕
(0, 0)旋转然后翻译的。 -
@BeyelerStudios - 我明白这一点,我会尝试更好地解释我在寻找什么。这幅画是我创建的,我将黑色正方形旋转 45 度,以 5x 5y 作为轴心点。我想要做的是比较两个图像,然后像我在绘图中所做的那样找到中心,使用 openCV 给出的矩阵
-
是的,但是您的枢轴是完全任意的,与转换无关。您的意思是您想知道图像中表示的实际对象的纯旋转(不包括平移分量)?