插值算法
输出像素一个一个地映射回输入图像。如果一个输出像素映射到输入图像中的采样栅格的整数坐标处的像素点,此时其灰度值就需要基于整数坐标的灰度值进行推断,这就是插值。
最近邻插值
输出像素的值为输入图像中与其最邻近的采样点的像素值。
双线性插值
是用四个点加权平均得到的灰度值的值,作为输出像素灰度值。
高阶插值
双线性插值的平滑效果会使图像的细节退化,而其斜率的不连续性会导致变换产生不希望的结果。高阶插值常用卷积来实现,输出像素的值为输入图像中距离他最近的4x4领域内采样点像素值的加权平均值。
代码实现
a=imread('rectangle.bmp');
b=imrotate(a,30,'nearest');%最近邻插值
c=imrotate(a,30,'bilinear');%双线性插值
d=imrotate(a,30,'bicubic');%三次插值
figure;
subplot