类型:转载 责任编辑:asp 日期:2007/03/01
我写一个程序放大一个位图,按照书上说的用了:双线性插值。可是放大2倍的效果还不如邻近插值。代码如下:请问是不是我的什么地方有错误:
四个点为(i1,j1),(i2,j1),(i1,j2),(i2,j2)
i2=i1+1;
j2=j1+1;
x0,y0为float类型。
//计算四个最邻近象素值
f1=*((char *)lpimgdata+(srcbufsize-linebytes-j1*linebytes)+i1);
f2=*((char *)lpimgdata+(srcbufsize-linebytes-j1*linebytes)+i2);
f3=*((char *)lpimgdata+(srcbufsize-linebytes-j2*linebytes)+i1);
f4=*((char *)lpimgdata+(srcbufsize-linebytes-j2*linebytes)+i2);
//插值1
f12=( char)(f1+(x0-i1)*(f2-f1));
//插值2
f34=( char)(f3+(x0-i1)*(f4-f3));
//插值3
*lptempptr=(char)(f12+(y0-j1)*(f34-f12));
请个位指教。
推荐阅读