1

我花了很多时间来理解和应用 Matlab 函数blockproc。我还阅读了有关此功能的 stackoverflow 上的一些帖子,例如thisthis,但我仍然无法按照我的意愿使用该功能。

基本上,我想要的只是图像上的一个滑动窗口,它与窗口重叠,但不(零)填充图像的边缘。

例如,在 10x10 的图像上,我想应用一个 8x8 的窗口,重叠为 2。如果

img = reshape(1:100,[10,10]);

然后,在 Matlab-Notation 中,我想得到

所需范围

    [1:8,  1:8] [1:8,  3:10]
    [3:10, 1:8] [3:10, 3:10]

我认为可以解决问题的命令是:

fun = @(block_struct) mean2(block_struct.data); 
blockproc(img, [4,4], fun, 'BorderSize', [2,2], 'TrimBorder', true)

其中,4+2*2=8 是我的窗口大小,2 表示重叠。但是,这不起作用。我尝试了其他参数和值的组合,但没有运气。

如果有人可以帮助我,我会非常高兴!提前致谢!

4

0 回答 0