Image 在MATLAb中计算行和列索引指定的子图像的平均灰度值

Image 在MATLAb中计算行和列索引指定的子图像的平均灰度值,image,matlab,indexing,Image,Matlab,Indexing,我有一张图像,我想计算图像中不同面片的平均灰度值。 我从使用行和列索引定义补丁开始。这就是我指定子映像所在位置的方式 for x = 10 : 1 : 74 for y = 30 : 1 : 94 ......... end end` 现在我如何计算这个子图像的平均灰度值?我知道所有这些方法都是寻找平均值(平均值(图像))。但是由于我只有行和列的位置,我如何应用相同的概念。假设您的图像是某个MxN矩阵,为什么不创建一个子矩阵并计算其平均值 例如:

我有一张图像,我想计算图像中不同面片的平均灰度值。 我从使用行和列索引定义补丁开始。这就是我指定子映像所在位置的方式

for x = 10 : 1 : 74
    for y = 30 : 1 : 94            
    .........
    end
end`

现在我如何计算这个子图像的平均灰度值?我知道所有这些方法都是寻找平均值(平均值(图像))。但是由于我只有行和列的位置,我如何应用相同的概念。

假设您的图像是某个MxN矩阵,为什么不创建一个子矩阵并计算其平均值

例如:

试试这个

mean(mean(im(10:74,30:94)))

另一种解决方案是:使用扁平内核(
h
)(您的“子图像”的大小)卷积图像(
I
),并在任何索引处获取结果的值

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
提供第三个参数来解决此问题。

非常感谢。我真的不知道指定一个求和图像这么容易。
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)