目录
一、单应性变换
定义:单应性变换是将一个平面内的点映射到另一个平面内的二维投影变换。在这里,平面是指图像或者三维中的平面表面。单应性变换具有很强的实用性,比如图像配准、 图像纠正和纹理扭曲,以及创建全景图像。我们将频繁地使用单应性变换。本质上, 单应性变换 H,按照下面的方程映射二维中的点(齐次坐标意义下):
对于图像平面内的点,齐次坐标是个非常有用的表示方式。点的齐次坐标是依赖于其尺度定义的,所以 x=[x,y,w]=[αx,αy,αw]=[x/w,y/w,1] 都表示同一个二维点。因此,单应性矩阵H 也仅依赖尺度定义,所以,单应性矩阵具有 8 个独立的自由度。我们通常使用 w=1 来归 一化点,这样,点具有唯一的图像坐标 x 和 y。这个额外的坐标使得我们可以简单地使用一个矩阵来表示变换。
矩阵H会将一幅图像上的一个点的坐标a=(x,y,1)映射成另一幅图像上的点的坐标b=(x1,y1,1),也就是说,我们已知a和b,它们是在同一平面上。 则有下面的公式:
即:
得:
得:
对于方程:
可写成一个矩阵与一个向量相乘,即:
其中,
是一个9维的列向量,若令:
则
可记为
这里的
这只是1对点所得到的矩阵A,若有4对点,则得到的矩阵:
由于我们是采用齐次坐标(即(x,y,1))来表示平面上的点,所以存在一个非零的标量s,使得 与
都表示同一个点b。若令
则:
可以看出,其实H只有8个变量(8个自由度)。因此,只需要4个点对,然后通过解线性方程组就可以求得H。也可以多于4个点对。
假设有n≥4个点对,则得到的矩阵:
求解向量h,直接对A进行SVD分解,即
然后取V的最后一列出来作为求解h。因为矩阵A是行满秩,即只有一个自由度。具体实现时,先要得到两幅图,然后在两幅图之间找到4对点的坐标,由此得到矩阵A。
图片的单应性变换指的是将一个平面的点映射到另外一个平面的点的操作。
简单的来说就是实现图片的拉伸,旋转或者平移。
为了实现前后图片上的一些点的操作,我们则必须建立二者之间的关系,建立一个线性代数方程组就是一个不错的选择,如下图所示:
齐次坐标是个非常有用的表示方式。点的齐次坐标是依赖于其尺度定义的,所以,x&#