用Matlab放大图像

时间:2019-04-28 15:57:39

标签: image matlab zoom

您能帮助我实现缩放算法吗,我的代码要求您对图像进行缩放;如果我键入2,则效果很好。

2x zoom image

但是我输入3倍或更多,我得到的是这样的东西:

3x zoom image

l = imread('coins.png');
l = double(l);
[fil,col] = size(l);
A = zeros(3*fil,3*col);
B = zeros(3*fil,3*col); 
s = input('Whats the zoom?');

for i=1:fil
 for j=1:col
    A(i,j) = l(i,j);
    x = s*i; 
    y = s*j;
    B(x-s+1,y-s+1) = A(i,j);
 end
end

for i=1:s:(3*fil)-1
 for j=2:s:(3*col)-1
    B(i,j) = (B(i,j-1) + B(i,j+1))/2; 
 end
end

for i=2:s:(3*fil)-1
 for j=1:(3*col)-1
    B(i,j) = (B(i-1,j) + B(i+1,j))/2;
 end
end

A = uint8(A);
B = uint8(B);
subplot(1,2,1);
imshow(A);
subplot(1,2,2);
imshow(B);

感谢您的建议,感谢您的宝贵时间

0 个答案:

没有答案