使用OpenCV,我可以计算出这两个图像之间的单应性:
和
不用担心右侧的白色奇怪形状,这是由于我使用的智能手机支架所致。由findHomography()函数提供的单应性(使用通过快速特征检测器和HammingLUT描述符匹配器检测到的点)为:
A = [ 1.412817430564191, 0.0684947165270289, -517.7751355800591;
-0.002927297251810, 1.210310757993256, 39.56631316477566;
0.000290600259844, -9.348301989015293e-05, 1]
现在,我使用相同的过程,通过使用imagemagick来计算旋转了180度(上下)的相同图像之间的单应性(事实上,我同样有兴趣知道旋转90度或90度的关系) 270度...)。他们来了:
和
通过这些图像,单应性变为:
B = [ 0.7148688519736168, 0.01978048500375845, 325.8330631554814;
-0.1706219498833541, 0.8666521745094313, 64.72944905752504;
-0.0002078857275647, -5.080048486810413e-05, 1]
现在,问题是您如何关联A和B?A的两个第一个对角线值接近B中的两个对角线值,但不是很精确(.707805537而不是0.71486885)。我的最终目的是使用所需的关系来变换最终矩阵,从而避免计算代价高昂的图像旋转。
Mat invT = 1./t; Mat n = invT.t() * (H - R);
(实际上是n/d
)。现在,“对其施加旋转”会给我一个3x1向量,但是如何使用它来再次计算单应矩阵呢?谢谢