matlab中的上采样

use*_*204 1 matlab

我尝试编写一个 matlab 函数来对图片(灰度值矩阵)进行上采样。事实上,这并不是什么极其复杂的事情,但我还是做错了。我的目标是将其大小调整为 2 倍,一开始我只想看看放大后的图片。我想用零填充间隙,因此每第二行/列都用零填充。当我完成后,我想知道为什么我只看到一片灰色的像素海洋。我本来希望至少能够识别出我照片中的一些东西。

这是我的功能,有人看到我的错误吗?

function [upsampled] = do_my_upsampling(image)
    [X Y] = size(image);
    upsampled = zeros(X*2, Y*2);
    upsampled(1:2:end, 1:2:end) = image(1:1:end, 1:1:end);
end
Run Code Online (Sandbox Code Playgroud)

Jon*_*nas 5

你的代码对我来说工作得很好(使用image = rand(100);。但是,这不是一个非常 Matlab 的方式来实现结果。

如果您只是想分散像素,为什么不直接建立索引呢?

[nRows,nCols] = size(image);
upsampled = zeros(2*nRows,2*nCols);
upsampled(1:2:end,1:2:end) = image;
Run Code Online (Sandbox Code Playgroud)