MATLAB 中的图像上采样使用 image() 和 imshow() 生成白色图像

标签 image algorithm matlab image-processing resampling

当我显示我重建的图像时,它们只是白色的。我的程序有明显的错误吗?

重建的图像应该在上采样 2x2 像素 block 中的一个像素处具有下采样图像的值。我在这里使用的插值方法只是从上面一行中获取值并用它填充下一行,对列重复此过程。

%% 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 为 2 会使 x 中的像素数量加倍> 和 yz 维度仍将具有相同的值。

调整大小的方法 box 会将初始像素值 (i, j) 复制到它的 3 个新邻居 (i+1, j)(i, j+1)(i+1, j+1) - 与您编程的方法相同。

关于MATLAB 中的图像上采样使用 image() 和 imshow() 生成白色图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18938005/

相关文章:

python - MATLAB sort() vs Numpy argsort() - 如何匹配结果?

arrays - Matlab reshape 水平猫

html - 你怎么知道pix中的位置

image - 如何为 youtube channel 获取各种大小的 youtube 视频的图像?

css - 在 Wordpress 中使用切片横幅

基于自动换行的 Swift 拆分子字符串

matlab - 分割图像中的数字 - Matlab

delphi - 如何获取照片的拍摄日期和时间?

java - 枚举子集的空间复杂度是多少?

python-3.x - 使用单词列表中的最小单词子串形成目标字符串