先使用matlab自带的函数imresize

pic=imread('data/2.jpg');
J=imresize(pic,2,'nearest');
K=imresize(pic,2,'bilinear');
L=imresize(pic,2,'bicubic');
figure(1);
imshow(pic);
figure(2);
imshow(J);
figure(3);
imshow(K);
figure(4);
imshow(L);

利用图像内插法放大图像

利用图像内插法放大图像利用图像内插法放大图像利用图像内插法放大图像

近邻插值法:

是最简单暴力的算法,时间最短效果最差。

放大1.5倍代码

pic=imread('data/2.jpg');
[x,y,z]=size(pic);

x=round(x*1.5);
y=round(y*1.5);
new_pic=zeros(x,y,z,class(pic));

for i=1:x
    for j=1:y
        for k=1:z
            a=round(i/1.5);
            b=round(j/1.5);
            new_pic(i,j,k)=pic(a,b,k);
        end
    end
end

figure;
imshow(pic);
title("Original picture");

figure;
imshow(new_pic);
title("Nearest neighbor");

利用图像内插法放大图像利用图像内插法放大图像

双线性插值法:

代码在原图像补全的部分有问题。后续补上。

 

相关文章:

  • 2021-11-18
  • 2022-12-23
  • 2021-06-27
  • 2021-09-13
  • 2022-03-08
  • 2021-11-22
  • 2021-08-15
  • 2021-11-09
猜你喜欢
  • 2022-12-23
  • 2021-06-18
  • 2022-12-23
  • 2021-07-16
  • 2021-11-18
  • 2021-05-20
相关资源
相似解决方案