仿射变换

来源:互联网 发布:淘宝店图片怎么制作的 编辑:程序博客网 时间:2024/05/19 16:38

装自于:http://blog.csdn.net/renshengrumenglibing/article/details/7176790


几何空间变换和图像配准

 

几何空间变换又称为橡皮膜变换,因为他可以看做是在一幅橡皮膜上印制图像,然后根据一定规则拉伸橡皮膜。由两个基本操作组成:

1)坐标的空间变换

2)灰度内插

最常用的是仿射变换一般形式如下:

[x,y,1] = [v,w,1]*T

                            [t11   t12   0] 

            = [v,w,1]*[t21   t22  0]

                            [t31   t32   0]

 

这一变换可以根据矩阵T中元素的值,对一组坐标点做尺度变换,旋转,平移,偏移。


我们有两种方法使用该式子,第一种是前向映射,它由扫描输入图像的像素,并在每一个位置(v,w)直接计算输出图像中像素的空间位置(x,y)组成。

第二种方法是反向映射,扫描输出图像的位置,并在每一个位置(x,y)使用(v,w) = T-1(x,y)反向计算输入图像相应的位置,然后进行灰度内插(一般使用最邻近,双线性,双三次内插)。

前向映射一个问题是,输入图像的的两个或多个像素会映射到输出图像的同一个位置,另一种可能是某些输出位置完全没有像素,因此反向映射比前向映射更加有效,被很多的商业公司选用,包括mathworks的 matlab使用的也是反向映射。

 

一、图像平移

x = v + tx

y = w + ty

原图:


平移后的图像:



二、图像旋转

x = v*cosA  - w * sinA

y = v *sinA + w * cosA

进行图像旋转时,需要注意的是当图像的大小发生改变时此时若以左上角点为原点,那么原点会发生改变,一般会选定图像的中心作为原点,这样在图像进行坐标变换时中心不变。但在在变换时要记得加减一个常数,使原点相对应。

 旋转后的图像:


观察旋转后的图像,会有很明显的锯齿现象。

若采用双线性插值或者三次立方插值那么锯齿依然难以消除。

 三、图像的尺度变换

 x  = cx * v

y = cy * w

这个就不附上图了,比较简单

四、图像的偏移

垂直偏移变换:

x =v*sv + w

y = w

水平偏移变换:

x = v

y = sh*v+w

水平偏移后的图像:

原创粉丝点击