MATLAB实现图像的放大和缩放

首先读入照片,进行双线性插值法;

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倍后的图片');

原图:MATLAB实现图像的放大和缩放_第1张图片

放大5倍后如图:

 

对比图:

缩小的图:

MATLAB实现图像的放大和缩放_第2张图片

 

你可能感兴趣的:(matlab,图像处理,计算机视觉)