当我显示我的重建图像时,它们只是白色的我的程序有什么明显的问题吗?
重建图像应具有上采样2x2像素块中一个像素处的下采样图像的值。我在这里使用的插值方法只是从上面的一行获取值并用它填充下一行,对列重复这个过程。

%% Image Resampling

close all; clear all; clc;

s_dir=pwd;
cd Images;

I=imread('aivazovsky78g.tif','tif');

cd(s_dir)

[N M]=size(I);

figure;
imshow(I)
axis image; hold on;

 for k=1:4
     pause(1)
     I=I(1:2:N, 1:2:M);
     [N M]=size(I);
     image(I)
 end

 %% Image Reconstruction

Irec=zeros(2*size(I));
for r=1:5
for n=1:N-1
    for m=1:M-1
        Irec(2*n-1,2*m-1)=I(n,m);
    end
end
[N M]=size(Irec);
for n=2:2:N
    for m=2:2:M
    Irec(n,:)=Irec(n-1,:);
    Irec(:,m)=Irec(:,m-1);
    end
end
I=Irec;
figure;
imshow(I)
 end

最佳答案

您可以使用B = imresize(A, scale, 'box'),其中scale的值是xy中像素数量的两倍z维度仍将具有相同的值。
调整大小的方法box将把初始像素值(i, j)复制到它的3个新邻居(i+1, j)(i, j+1)(i+1, j+1)-与您编程的方法相同。

09-07 08:09
查看更多