则能够利用以下公式进行插值计算。其中a和(1-a)为x距离x1和x2的距离占(x2-x1)的比例。
y = a*y1 + (1-a)*y2函数
如今假设im(m, n)为原图像中第m行第n列的像素,其周围的几个像素为im(m+1, n)、im(m, n+1)、im(m+1, n+1)。3d
若把这几个像素的中心连线能够获得这样一个正方形。cdn
总的思路就是分两次作插值计算,先用插值算出P1和P2点的像素值在用这两点求出P点的像素值。blog
求出P1和P2的公式以下
P1 = b*im(m, n) + (1-b)*im(m+1, n)图片
P2 = b*im(m, n+1) + (1-b)im(m+1, n+1)
求出P的公式以下
P = aP1 + (1-a)*P2it
= a*[bim(m, n) + (1-b)im(m+1, n)] + (1-a)[bim(m, n+1) + (1-b)*im(m+1, n+1)]io
= abim(m, n) + a*(1-b)im(m+1,n) + (1-a)bim(m, n+1) + (1-a)(1-b)*im(m+1, n+1)class
这是最简单的一种插值方法,不须要计算,在待求象素的四邻象素中,将距离待求象素最近的邻象素灰度赋给待求象素。设i+u, j+v(i, j为正整数, u, v为大于零小于1的小数,下同)为待求象素坐标,则待求象素灰度的值 f(i+u, j+v) 以下图所示:lazyload
最邻近元法计算量较小,但可能会形成插值生成的图像灰度上的不连续,在灰度变化的地方可能出现明显的锯齿状。gc