对极几何约束、基本矩阵求解、求极线

对极几何约束、基本矩阵求解、求极线

Email:[email protected]

在看一篇论文里,提到使用对极几何约束来寻找运动区域,于是来回看了几遍对极几何约束的知识,具体的步骤没有详细推导过,只是了解了基本原理。

一、对极几何约束基本概念

对极几何中的重要概念(参考下图):

极点:极点 el el:右相机坐标原点在左像平面上的像;极点 er er:左相机坐标原点在右像平面上的像

极平面:由两个相机坐标原点 Ol Ol Or Or和物点P组成的平面

级线:极平面与两个像平面的交线,即 plel plel prer prer

级线约束:两极线上点的对应关系

1. 找到物点P在左像平面上的像点 pl

2. 画出极线 plel

3. 找到极平面 Olplel 与右像平面的交线,即得极线 prer

4. 像点 pl 的对应点一定在极线 prer 上。


知道这一点就行了。这些对应点之间的存在的对应关系:基础矩阵

参考http://www.cnblogs.com/gemstone/archive/2011/12/20/2294805.html

二、求解基础矩阵和极线

求解基础矩阵的方法,有8点算法、LMed算法、RANSAC算法。

对极几何约束、基本矩阵求解、求极线_第1张图片



对极几何约束、基本矩阵求解、求极线_第2张图片

对极几何约束、基本矩阵求解、求极线_第3张图片




三、opencv自带函数基础矩阵和极线

3.1求基础矩阵

findFundamentalMat();//这个函数可以百度百科

3.2求极线

void cvComputeCorrespondEpilines( const CvMat* points, int which_image, const CvMat* fundamental_matrix, CvMat* correspondent_lines);

points输入点,是2xN 或者 3xN 数组 (N为点的个数)

which_image包含点的图像指数(1 or 2)

fundamental_matrix基本矩阵correspondent_lines计算对极点, 3xN数组

函数 ComputeCorrespondEpilines 根据外级线几何的基本方程计算每个输入点的对应外级线。

如果点位于第一幅图像(which_image=1),对应的对极线可以如下计算 :

其中F是基本矩阵,p1是第一幅图像中的点,l2- 是与第二幅对应的对极线。

如果点位于第二副图像中 which_image=2),计算如下:

其中p2是第二幅图像中的点,l1是对应于第一幅图像的对极线,每条对极线都可以用三个系数表示 a, b, c:

归一化后的对极线系数存储在correspondent_lines 中。


例如:(图中还绘制了几个点)

对极几何约束、基本矩阵求解、求极线_第4张图片

你可能感兴趣的:(opencv,图像处理,对极几何)