【图像处理】空间变换

概念

在图像处理中的空间变换(spatial transformation)分成两种情况,有仿射变换(Affine Transformation)及投影变换(Perspective Transformation)。

仿射变换是从一个二维坐标变换到另一个二维坐标,它是一种线性变换,保持了图像的平行性和平直性,即在变换之后,原先图像中的直线与平行线还是保持一致。只是位置存在变化。仿射变换包括平移(Translation)、缩放(Scale)、翻转(Flip)、旋转(Rotation)和剪切(Shear)。

而投影变换则是指利用投影光束映射图像到投影面上,原始图像与变换后的图像存在着投影变换的关系。

对于数学上的表示而言,这两者都是一样的,始终存在着一个变换矩阵使得原图像与变换后的图像能够互相转换。

举个例子

【图像处理】空间变换_第1张图片
如上图所示,假设f为原图像,g为变换后图像。
通过一定的变换关系,使得f变换到g。如果我们知道对应角点的坐标,则可以通过以下的式子进行推算。

【图像处理】空间变换_第2张图片

matlab实现

以下为对应的matlab代码,只要设置对应的xs,ys,xd,yd,即可求出对应的矩阵c

m1 = [xs0,xs1,xs2,xs3;ys0,ys1,ys2,ys3;xs0*ys0,xs1*ys1,xs2*ys2,xs3*ys3;1,1,1,1];
m2 = [xd0,xd1,xd2,xd3;yd0,yd1,yd2,yd3];
% c is the transformation matrix from src to dest 
c = m2*inv(m1);

由于矩阵的计算比较复杂,特别是求逆运算,后续将再提供对应C程序。

你可能感兴趣的:(【图像算法】)