OpenCV中的图像旋转角度计算

时间:2014-11-07 03:40:11

标签: opencv matrix

我想计算手对象的旋转角度。此步骤的目的是使对象对齐。其主轴和副轴与坐标系中的x轴和y轴平行。

首先,我使用MATLAB来做到这一点。 1.在手对象中找到白色像素坐标,返回n×2矩阵。 2.计算该n乘2矩阵的协方差矩阵。 3.使用eigs函数得到特征值和特征向量,特征向量矩阵是2乘2矩阵。 4.旋转角度由sigma = arctan(eigenvecotor(1,1)/ eigenvecotor(2,1))* 180 / pi

计算

结果很好。

我怎么能在OpenCV中做同样的事情?我已多次测试它,但结果不正确。

我也尝试使用以下代码,但使用此方法也不正确。

(结果是手形图像的垫子)

   Moments mu =  moments(result, false);                          
   Point2d mc(mu.m10/mu.m00, mu.m01/mu.m00);                       
   double m11 = mu.m11 ;
   double m20 = mu.m20 ;
   double m02 = mu.m02 ;
   double orientation = 0.5*atan(2*m11 / (m20 - m02))*180/M_PI; 

有人可以帮我编写代码,或者给我一些线索,告诉我如何实现与OpenCV中Matlab相同的方法?

非常感谢您的关注和时间。

0 个答案:

没有答案