通过Matlab

时间:2016-05-25 16:49:34

标签: matlab matrix sum shrink

我确信这是基本的,但是我不能通过添加适合新的“小”单元格的所有元素来轻松地通过网格单元减少人口数量矩阵。那些。

我的矩阵是720x360,并希望将其更改为360x180。我考虑使用imresize with 0.5 scale,然后假设每个新网格的值是旧网格的4倍。

但是,我感到不安,因为我找不到类似案例的例子。将“sum”或“average”作为“插值”选项或类似的东西会很好。

提前感谢您提供任何帮助

干杯

玛利亚

1 个答案:

答案 0 :(得分:0)

如果您有图像处理工具箱:

x = randi(10,6,8); % example matrix
bs = [2 2]; % block size
y = col2im(sum(im2col(x, bs, 'distinct'), 1), [1 1], size(x)./bs, 'distinct');

如何运作

im2col(... 'distinct')将给定大小的每个不同块排列成一列。 sum(...,1)然后对每列进行求和。最后,im2col(..., 'distinct')将结果排列回一个缩小的矩阵。