仿射变换

左手的ㄟ右手 2022-06-04 01:17 406阅读 0赞

装自于: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中元素的值,对一组坐标点做尺度变换,旋转,平移,偏移。

0_1325689236ysZ9.gif

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

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

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

一、图像平移

x = v + tx

y = w + ty

原图:

0_1325689345716a.gif

平移后的图像:

0_1325689393KiAK.gif

二、图像旋转

x = v*cosA - w * sinA

y = v *sinA + w * cosA

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

旋转后的图像:

0_1325689495TJuM.gif

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

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

三、图像的尺度变换

x = cx * v

y = cy * w

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

四、图像的偏移

垂直偏移变换:

x =v*sv + w

y = w

水平偏移变换:

x = v

y = sh*v+w

水平偏移后的图像:

0_1325690871sFTe.gif

发表评论

表情:
评论列表 (有 0 条评论,406人围观)

还没有评论,来说两句吧...

相关阅读

    相关 仿变换

    仿射变换是平移、缩放、旋转、对称、错切五种变换的组合,其数学表达形式如下: ⎧⎩⎨⎪⎪x′=a11x\+a12y\+x0y′=a12x\+a22y\+y0 采用

    相关 GDAL仿变换

    一、仿射变换(Affine GeoTransform)有六个参数,描述的是栅格行列号和地理坐标之间的关系。 在GDAL中可以通过函数GDALDataset::GetGeoTr

    相关 pytorch---仿变换

    一、仿射变换 图片的旋转、平移、缩放等可以看做一个像素的重采样过程。将原图的像素映射到目标图像的对应位置上,可以