一.二维中的单应性矩阵

  1. 单应性矩阵与射影矩阵基本是一回事,都有8个自由度,摄影矩阵是从二维平面的操作。单应性矩阵可以看成从二维的操作到三维操作的一个过度。
  2. 单应性变换又称为射影变换或者透视变换,有很多的叫法。
  3. 单应性矩阵就是个3*3的矩阵。
  4. 单应性矩阵(H)可以描述两个图片之间的变换,可以进行图片的拼接

单应性变换原理opencv 单应性矩阵是什么_图像拼接

 或者

单应性变换原理opencv 单应性矩阵是什么_二维_02

  

这里H是单应性矩阵,可以从一个图像把每一个像素变换到另一个图像平面,这样就可以进行图像的拼接。

利用单应性矩阵做图像拼接的时候,如果之灾二维的空间中处理,要求相机的中心不能有平移,因为这样可以在不知道场景深度信息的条件下就可以完成图像的拼接。

单应性变换原理opencv 单应性矩阵是什么_二维_03

如果相机中心有移动就可能产生重影,因为这个时候两个相机看到的场景可能会不一致。

单应性变换原理opencv 单应性矩阵是什么_二维_04

在数学几何的层面来看,利用单应性矩阵做图像拼接是要求相机中心点不能移动,但拍室外的话,因为场景较远,相机移动的距离相比于场景的距离可以忽略不记,所以拍出来的效果还好。拍室内的话,因为场景较近,要是有移动,会有很多重影。

单应性变换原理opencv 单应性矩阵是什么_单应性变换原理opencv_05

单应性变换原理opencv 单应性矩阵是什么_图像拼接_06

单应性变换原理opencv 单应性矩阵是什么_单应性变换原理opencv_07

单应性变换原理opencv 单应性矩阵是什么_单应性变换原理opencv_08

有一种情况,就算相机中心有移动,也可以利用单应性矩阵对图像拼接。就是拍摄的场景是平面的时候。

单应性变换原理opencv 单应性矩阵是什么_单应性变换原理opencv_09

二.三维中的单应性矩阵

当相机拍摄的对象是平面的时候,可以从两个视图测量的单应矩阵中,通过分解的方式获取相机的位姿信息(前提是相机的内参已知)。

单应性变换原理opencv 单应性矩阵是什么_二维_10

单应性变换原理opencv 单应性矩阵是什么_二维_11

单应性矩阵分解中,单应性矩阵8个自由度,旋转矩阵R有三个自由度,平移矩阵t有3个自由度,法向量n有2个自由度,相机中心距平面的距离d有1个自由度。

单应性矩阵分解问题分解的结果为:

单应性变换原理opencv 单应性矩阵是什么_图像拼接_12