我尝试编写一个matlab函数,对我的图片进行上采样(灰度值矩阵)。它实际上并没有太复杂,但我还是设法做错了。 我的目标是通过因子2调整它的大小,并且在开始时我只想看到我放大的图片。我想用零填充空白,因此每第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
答案 0 :(得分:3)
您的代码适用于我(使用image = rand(100);
。但是,它不是一种非常Matlab方式来实现结果。
如果您只想展开像素,为什么不直接编制索引?
[nRows,nCols] = size(image);
upsampled = zeros(2*nRows,2*nCols);
upsampled(1:2:end,1:2:end) = image;
答案 1 :(得分:-1)
尝试imshow(image,[])
或者,因为你的图像是双重的,首先将其转换为uint8,然后显示即
imshow(uint8(image))