欢迎使用CSDN-markdown编辑器

来源:互联网 发布:windows系统修复 编辑:程序博客网 时间:2024/05/18 17:58

对于\textbf{径向畸变},无论是桶形畸变还是枕形畸变,由于它们都是随着离中心的距离增加而增加。我们可以用一个多项式函数来描述畸变前后的坐标变化:这类畸变可以用和距中心距离有关的二次及高次多项式函数进行纠正:

xdistorted=x(1+k1r2+k2r4+k3r6)ydistorted=y(1+k1r2+k2r4+k3r6).

其中[x,y]T是归一化平面点的坐标,[xdistorted,ydistorted]T是畸变后点的坐标。

在式(???)描述的纠正模型中,对于畸变较小的图像中心区域,畸变纠正主要是k1起作用。而对于畸变较大的边缘区域主要是k2起作用。普通摄像头用这两个系数就能很好的纠正径向畸变。对畸变很大的摄像头,比如鱼眼镜头,可以加入k3畸变项对畸变进行纠正。

另一方面,对于\textbf{切向畸变},可以使用另外的两个参数p1,p2来进行纠正:

xdistorted=x+2p1xy+p2(r2+2x2)ydistorted=y+p1(r2+2y2)+2p2xy.

因此,联合式(???)和式(???),对于相机坐标系中的一点P(X,Y,Z),我们能够通过五个畸变系数找到这个点在像素平面上的正确位置:

1.将三维空间点投影到归一化图像平面。设它的归一化坐标为[x,y]T

2.对归一化平面上的点进行径向畸变和切向畸变纠正。给定归一化坐标,可以求出原始图像上的坐标。

{xdistorted=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2)ydistorted=y(1+k1r2+k2r4+k3r6)+p1(r2+2y2)+2p2xy.

3.将纠正后的点通过内参数矩阵投影到像素平面,得到该点在图像上的正确位置。

{u=fxxdistorted+cxv=fyydistorted+cy.

在上面的纠正畸变的过程中,我们使用了五个畸变项。实际应用中,可以灵活选择纠正模型,比如只选择k1,p1,p2这三项等。

在这一节中,我们对相机的成像过程使用针孔模型进行了建模,也对透镜引起的径向畸变和切向畸变进行了描述。实际的图像系统中,学者们提出了有很多其他的模型,比如相机的仿射模型和透视模型等,同时也存在很多其他类型的畸变。考虑到视觉SLAM中,一般都使用普通的摄像头,针孔模型以及径向畸变和切向畸变模型已经足够。因此,我们不再对其它模型进行描述。

0 0
原创粉丝点击