我正在尝试对图像中MxN块的值求平均,然后用平均值的MxN矩阵替换该块。使用blockproc,我的代码如下:
a = imread('image.jpg');
fun = @(x) mean(x)*ones(size(x));
b = blockproc(a, [M N], fun);
但是,我一直在生成尺寸小于原始尺寸的图像(我认为可以通过使用尺寸(x(size(x))来规避))。另外,生成的图像是空白的。关于我犯错误的任何提示?
答案 0 :(得分:0)
fun = @(block_struct) ...
mean2(block_struct.data) * ones(size(block_struct.data));
答案 1 :(得分:0)
documentation提到您应该使用部分填充:
b = blockproc(a, [M N], ...
@(block_struct) mean(block_struct.data(:)) * ones(block_struct.blockSize), ...
'PadPartialBlocks',true);