我正在为 matlab 编写高斯金字塔代码。基本上它加载一个图像,创建一个单元阵列并用不同级别的高斯金字塔填充它。

我想在一个图形中显示填充图像的单元格数组的内容,
所以你可以看到高斯金字塔效应。这意味着原始图像是全尺寸的,其余的每个都被下采样了 2。所有这些都集中在一个数字上。

说到 Matlab,我是个业余爱好者,所以我真的不知道该怎么做。
我已经尝试了一些子图但失败了。

提前致谢。

最佳答案

我使用循环在所有图像的顶部添加零然后合并它们

示例 cell

im = imread('peppers.png');
for i = 1 : 5
    I{i} = im(1 : 2*i : end, 1 : 2*i : end,:);
end

代码,I 是你的手机,
m = size(I{1}, 1);
newI = I{1};
for i = 2 : numel(I)
    [q,p,~] = size(I{i});
    I{i} = cat(1,repmat(zeros(1, p, 3),[m - q , 1]),I{i});
    newI = cat(2,newI,I{i});
end
imshow(newI)

对于 2D 图像使用:I{i} = cat(1,repmat(zeros(1 , p),[m - q , 1]),I{i});

关于arrays - 在单个图中显示存储在元胞数组中的高斯金字塔,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27002563/

10-12 22:50