1、线性插值
设新图的高度和宽度分别为height和width,原图高度和宽度为nheight和nwidth,对于新图中纵、横坐标分别为i、j的像素点,如有 ,则在原图中[m][n]、[m+1][n]、[m][n+1]和[m+1][n+1]四点在原图中的相对位置与点[i][j]在新图中的相对位置最为接近。
对于线性插值,只需两个样本点,其插值公式为
value1=(m+1-nheight*i/height)a[m][n]+(nheight*i/height-m)*a[m][n+1]
value2=(m+1-nheight*i/height)a[m][n+1]+(nheight*i/height-m)*a[m+1][n+1]
最后求出新图中[i][j]点的像素值为
value[i][j]= (value1+value2+value3+value4)/4;
并取整。
对于靠近图像边缘的点,上述插值公式有时不能完全适用,需要有适当的判断和处理。当m>=nwidth时,a[m+1][n]和a[m+1][n+1]不存在,此时需要设定value1=value2= a[m+1][n];n>=nheight时的情况完全类似。