0

如何使用 mat-lab 计算图像中某个区域的平均值?例如,如果我有一个区域更亮的强度图像,并且我想知道那里的强度平均值是多少 - 我如何计算它?我想我可以通过使用“impixelinfo”命令找到发光区域的坐标。如果有另一种更有效的方法来查找坐标,我也会很高兴知道。在我知道坐标后,我如何计算部分图像的平均值?

4

1 回答 1

1

您可以使用imroiMatlab 中的一种类型函数,例如imfreehand

I = imread('cameraman.tif');
h = imshow(I);
e = imfreehand;
% now select area on image - do not close image

% this makes a mask from the area you just drew
BW = createMask(e);

% this takes the mean of pixel values in that area
I_mean =  mean(I(BW));

或者,考虑使用regionprops,特别是如果图像中可能有多个这些功能。在这里,我在图像中找到高于某个阈值强度的点,然后使用imdilate它们在每个点周围挑选出一个小区域(假设高于阈值的点被很好地分开,情况可能并非如此 - 如果它们太关闭然后 imdilate 会将它们合并到一个区域中)。

se = strel('disk',5);
BW = imdilate(I>thresh,se);
s = regionprops(BW, I, 'MeanIntensity');
于 2013-09-09T13:17:10.313 回答