本文主要是介绍单应性矩阵,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一.二维中的单应性矩阵
- 单应性矩阵与射影矩阵基本是一回事,都有8个自由度,摄影矩阵是从二维平面的操作。单应性矩阵可以看成从二维的操作到三维操作的一个过度。
- 单应性变换又称为射影变换或者透视变换,有很多的叫法。
- 单应性矩阵就是个3*3的矩阵。
- 单应性矩阵(H)可以描述两个图片之间的变换,可以进行图片的拼接
或者
这里H是单应性矩阵,可以从一个图像把每一个像素变换到另一个图像平面,这样就可以进行图像的拼接。
利用单应性矩阵做图像拼接的时候,如果之灾二维的空间中处理,要求相机的中心不能有平移,因为这样可以在不知道场景深度信息的条件下就可以完成图像的拼接。
如果相机中心有移动就可能产生重影,因为这个时候两个相机看到的场景可能会不一致。
在数学几何的层面来看,利用单应性矩阵做图像拼接是要求相机中心点不能移动,但拍室外的话,因为场景较远,相机移动的距离相比于场景的距离可以忽略不记,所以拍出来的效果还好。拍室内的话,因为场景较近,要是有移动,会有很多重影。
有一种情况,就算相机中心有移动,也可以利用单应性矩阵对图像拼接。就是拍摄的场景是平面的时候。
二.三维中的单应性矩阵
当相机拍摄的对象是平面的时候,可以从两个视图测量的单应矩阵中,通过分解的方式获取相机的位姿信息(前提是相机的内参已知)。
单应性矩阵分解中,单应性矩阵8个自由度,旋转矩阵R有三个自由度,平移矩阵t有3个自由度,法向量n有2个自由度,相机中心距平面的距离d有1个自由度。
单应性矩阵分解问题分解的结果为:
这篇关于单应性矩阵的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!