如何从透视矩阵中检测旋转 Angular ?
我写了这段代码,但是结果 Angular 不超过40 ...
Mat mmat;
mmat.create(3,3,CV_32FC1);
mmat=getPerspectiveTransform(templPoints,imgPoints);
cout<< mmat<<endl<<endl;
float angle=acos(mmat.at<double>(0,0));
angle=(angle*180)/3.14;
cout<<"angle is"<<angle<<endl;
最佳答案
getPerspectiveTransform返回单应性矩阵,可以将其分解为:
[R11,R12,T1]
[R21,R22,T2]
[P,P,1]
R代表旋转矩阵,T代表平移,P代表透视变形。
有关旋转矩阵表示的更多信息:
http://en.wikipedia.org/wiki/Rotation_matrix
http://mathworld.wolfram.com/RotationMatrix.html