旋转矩阵openCV

Mar*_*rio 6 math opencv

我想知道如何为一组框架中的一组特征找到旋转矩阵.我会更具体.我有2个帧,有20个特征,比如帧1和帧2.我可以估计两个帧中的特征的位置.例如,假设位置(x,y)处的某个第1帧特征,我确切地知道它在哪里,所以让我们说(x',y').

我的问题是功能被移动并可能旋转,所以我想知道如何计算旋转矩阵,我知道2D的旋转矩阵:

替代文字

但我不知道如何计算角度,以及如何做到这一点?我试图在OpenCV中的函数,而cv2DRotationMatrix();但正如我上面我所提到的问题,不知道如何来计算旋转矩阵,并且它提供了2×3的矩阵,另一个问题的角度,所以如果不会制定出事业我将借此20×2矩阵,(20是特征的数量和2是在(X,Y)的位置),并通过由2*3矩阵,其是从该函数的结果相乘,然后我会得到20*3矩阵,它似乎不太现实,因为我正在使用2D.
所以我该怎么做?更具体一点,请告诉我如何计算在矩阵中使用它的角度?

Mar*_*tos 6

我不确定我是否理解了你的问题,但如果你想找出任意变换产生的旋转角度......

一个简单的方法是变换点[0 0]和[1 0],并获得从第一个变换点到第二个变换点的光线角度.

o = M • [0 0]
x = M • [1 0]
d = x - o
? = atan2(d.y, d.x)
Run Code Online (Sandbox Code Playgroud)

这不考虑倾斜和其他非正交变换,"角度"的概念是模糊的.