基础矩阵、本质矩阵、单应性矩阵、透射变换、仿射变换

再讲下基本矩阵,存在这么一个矩阵F,使得空间中不在两图像平面上的任意点X分别在两图像的投影坐标x,x'满足等式(x')T*F*x=0,即x'的转置乘以F,再乘以x的结果为0,那么F就是左边图像到右边图像的基本矩阵,从公式上可以看出基本矩阵是有方向的,右图到左图的基本矩阵就是F的转置。F矩阵有如下性质:
1、秩为2;
2、F矩阵是一个7个自由度的3*3矩阵(3*3矩阵本身9个自由度,因为相差一个常数因子和行列式值为0两个条件,减掉2个自由度),相差一个常数因此的意思是:kF(k!=0)也是基本矩阵,也就是说如果F是基本矩阵,那么kF也是基本矩阵,所以基本矩阵不唯一,在相差一个倍数的前提下是唯一的,也就是我们可以固定矩阵中某一个非零元素的值,这样自然少一个自由度。
这里讲下自己对基本矩阵的理解:很简单,基本矩阵提供了三维点到二维的一个约束条件。举个例子,现在假设我们不知道空间点X的位置,只知道X在左边图上的投影x的坐标位置,也知道基本矩阵,首先我们知道的是X一定在射线Cx上,到底在哪一点是没法知道的,也就是X可能是Cx上的任意一点(也就是轨迹的意思),那么X在右图上的投影肯定也是一条直线。也就是说,如果我们知道一幅图像中的某一点和两幅图的基本矩阵,那么就能知道其对应的右图上的点一定是在一条直线上,这样就约束了两视角下的图像中的空间位置一定是有约束的,不是任意的。基本矩阵是很有用的一个工具,在三维重建和特征匹配上都可以用到。

最后带下本质矩阵,本质矩阵就是在归一化图像坐标下的基本矩阵。不仅具有基本矩阵的所有性质,而且还可以估计两相机的相对位置关系,具体内容可参考《计算机视觉中的多视图几何》。 

基本矩阵是描述二维图像中的目标点在三维空间的位置关系,好好理解下这句话。单应矩阵实际就是个透视变换矩阵,纯2D变换,我知道的只是用在了BA里做为一种约束条件而已。
由基本矩阵是可以计算相对摄像机矩阵对的,但是没法计算实际的两个摄像机矩阵,只能计算相对的。而摄像机矩阵由内外参数组成,因此存在不同的内参数,只要调节外参数,可以得到相同的摄像机矩阵。
关于图片拼接,根本用不到基本矩阵!

载自:
http://www.zhihu.com/question/27581884/answer/45781628

单应性矩阵:在两视几何中,可以这样理解,两架相机拍同一空间上得到两幅图像AB,其中一幅A在另一幅B存在一种变换而且是一一对应的关系,他们之间可以用矩阵表示 这个矩阵用单应矩阵 

透视变换与单应性变换:
两者联系:
都用于计算单应矩阵,即解一个线性方程组。由于单应矩阵有8个未知数(3*3,其中第9个数为1),所以至少需要4个点(每个点-x,y,提供2个约束方程)。

两者区别:
1.计算方法不同:通过跟踪源码,发现getPerspectiveTransform用的是SVD分解,findHomography看不出是用什么方法(没注释,一堆等式)。但两者计算结果是一样的。

2.输入参数不同:getPerspectiveTransform只会拿前4个点去计算,findHomography则会拿一堆点(>=4)去计算(其是不断从一堆点中重复拿出4个点去计算出一个结果,再采用一些优化算法RANSAC/LMEDS去筛选出最优解)。

对于仿射变换和透视变换的区别与联系:
http://m.blog.csdn.net/article/details?id=51355600

你可能感兴趣的:(图像处理(image,processing))