我有一张图片,我想计算图像不同色块的平均灰度值。 我开始使用行和列索引定义补丁。这是我指定我的子图像所在位置的方式。
for x = 10 : 1 : 74
for y = 30 : 1 : 94
.........
end
end`
现在我该如何计算这个子图像的平均灰度值?我知道所有这些意味着找到平均值(平均值(图像))。但由于我只有行和列位置,我怎么能应用这个相同的概念。
答案 0 :(得分:0)
假设您的图像是某个MxN矩阵,为什么不创建子矩阵并计算其平均值?
例如:
subimage = image(10:74, 30:94);
mean_grey = mean(mean(subimage))
答案 1 :(得分:0)
试试这个
mean(mean(im(10:74,30:94)))
答案 2 :(得分:0)
另一种解决方案:将图像(I
)与平面内核(h
)(您的“子图像”的大小)进行卷积,并将结果的值取为任何索引。< / p>
h = ones(a,b); % sub-image is size a x b
h = h / sum(h(:));
J = imfilter(I, h);
% J(x,y) will give you the average of a sub-image centered on (x,y)
边缘情况可能会导致奇怪的行为(图像范围外的子图像),但您可以向imfilter
提供第三个参数来解决此问题。