我已经尝试了几周,试图使用精确的四元数来变形一些照片,但是没有成功。下面的方程似乎不能像我从准确位置期望的那样旋转相机位置。我做对了吗?还有什么我忽略的吗?
我知道仅仅传递一个四元数不足以拼接照片,但它应该足以对齐照片吧?
这是公式:
double divmult = 2.0 / lsq;
double xx = divmult * x * x;
double yy = divmult * y * y;
double zz = divmult * z * z;
double wx = divmult * w * x;
double wy = divmult * w * y;
double wz = divmult * w * z;
double xy = divmult * x * y;
double xz = divmult * x * z;
double yz = divmult * y * z;
cameras_global[imageCounter].R = (Mat_<float>(3, 3) << ( 1 - yy - zz ), -( xy - wz ), -( xz + wy ),
( xy + wz ), -( 1 -xx -zz ), -( yz - wx ),
( xz - wy ), -( yz + wx ), -( 1 -xx -yy ) );