如何使用 mat-lab 计算图像中某个区域的平均值?例如,如果我有一个区域更亮的强度图像,并且我想知道那里的强度平均值是多少 - 我如何计算它?我想我可以通过使用“impixelinfo”命令找到发光区域的坐标。如果有另一种更有效的方法来查找坐标,我也会很高兴知道。在我知道坐标后,我如何计算部分图像的平均值?
问问题
3147 次
1 回答
1
您可以使用imroi
Matlab 中的一种类型函数,例如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 回答