使用Matlab进行块平均计算

时间:2013-11-21 05:28:07

标签: matlab

如何划分图像区域,将其划分为nxn块,在这种情况下让我们说4x4。对于每个块,计算块的平均值。我需要将块均值转换为基于(像素值=块均值)的二进制位图。

2 个答案:

答案 0 :(得分:0)

我相信使用imresize可以使用以下语法实现您的目标:

N = 100;
n = 4; % the size of your nxn blocks
image = rand(N);
small_image = imresize(image,1/n,'box');

答案 1 :(得分:0)

这个怎么样?

img = randn(12,12); %// example data
[R C] = size(img);
N = 4; %// block size. Assumed to divide R and C

result_small = blockproc(img,[N N],@(block) mean(block.data(:))); %// R/N x C/N
result = result_small(floor(0:1/N:R/N-1/N)+1,floor(0:1/N:C/N-1/N)+1); %// R x C