首先读入照片,进行双线性插值法;
t=imread('图像处理.png');
[m,n,dep]=size(t);
重点是这里的倍数,如果取大于1的数,就是放大,取小于1的数就是缩小;
rm=5*m;
rn=5*n;
rt=zeros(rm,rn,dep);
for i=1:rm
for j=1:rn
x=i*m/rm;
y=j*n/rn;
u=x-floor(x);
v=y-floor(y);
if x<1
x=1;
end
if y<1
y=1;
end
rt(i,j,:)=t(floor(x),floor(y),:)*(1-u)*(1-v)+t(floor(x),ceil(y),:)*(1-u)*v+t(ceil(x),ceil(y),:)*(u)*(1-v)+t(ceil(x),ceil(y),:)*u*v;
end
end
imshow(t);title('原图');
figure;imshow(uint8(rt));title('5倍后的图片');
原图:
放大5倍后如图:
对比图:
缩小的图: