几何变换
几何变换是图像处理和图像分析的重要内容,按照变换性质可以分为位置变换、形状变换以及复合变换。图像的几何变换方式是使得图像在变换矩阵T的作用下变换为另一幅图像,具体表达如下。在matlab中,可以调用imtransform()函数来对图像进行空间变换。
位置变换
平移
平移变换时,如果图像的尺寸未变大,那么可能出现图像只能保存部分,被移出图像的部分需要补0或者255,这将会使得图像的部分信息丢失。
旋转
图像的旋转变换是指以图像的中心为原点,将图像上的所有像素点旋转一个相同个角度。和平移一样,变换后的也可能会出现空白区域,需要填补。在matlab中,韩式imrolate()可以用来实现对图像的旋转变换。假设旋转的角度为\alpha ,那么变换公式如下:
镜像
图像的镜像变换并不改变图像的形状,其类型主要包括水平镜像变换、垂直镜像变换、对角线镜像变换三种类型。其中,对角镜像可以看成是水平镜像和垂直镜像的复合变换。假设图像的高度为h,宽度为w,那么三种镜像变换公式对应如下:
形状变换
裁剪
顾名思义,裁剪就是在原图像中提取一部分图像出来。提出出来的图像可以是规则的矩形,也可以是不规则的多边形。在matlab中,提供了imcrop()函数来对图像进行裁剪操作。
缩放
图像的缩放指的是按照一定的比例对图像的两个坐标轴进行缩放而获得新图像,若两个轴的比例相同,则成为全比例缩放。图像的缩放可能会造成图像的畸变。图像的缩小是通过减少像素的个数来实现的,因此需要选择保留的像素点使得尽量能够保证图像的基本信息特征。常用的方法有等间隔采样法和局部均值法。等间隔采样就是通过相同的间隔就近采取像素点作为保留的点,而局部均值就是利用等间隔构成的图像子块求得子图块像素均值作为保留点。图像的放大需要更多的像素来填充放大后的无像素区域,一般采用最近邻域法和线性插值法。最近邻域法是按照最近的像素填充该区域而现象插值法是根据周围四份像素点的距离比有四个邻域的像素灰度值进行线性插值得出该区域各个像素点的灰度值。matlab中,imresize()函数默认的是最近邻域法。图像的缩放变换表达式如下:
错切
图像的错切变换实际上就是平面金乌在投影平面上的非垂直投影,分为水平方向的错切与垂直方向的错切。图像的旋转可以分解为三次错切来实现。两种错切公式如下:
复合变换
复合变换可以看成是之前所述的多种变换的叠加,将基本的变换矩阵T1,T2,T3……进行相乘就可以得到复合变换的变换矩阵T。