我试图找出不同连接区域的均值,kurtosis
,skew
等。我可以使用以下代码使用.PixelValue
命令找到它吗?还是要使用.PixelValue
命令?请帮助我。这是我的第一份工作。请更正我的代码以找到意思。
%Out是我感兴趣的输出图像区域。
[val num]=bwlabel(Out);
STATS=regionprops(val,'All');
for i=1:num
kk=STATS(i);
kk1=kk.PixelList;
% To find mean
[r c]=size(kk1);
ax(i)=r*c;
pp(i)=sum(sum(kk1));
bx(i)=pp(i)/su;
mean=bx(i);
end
答案 0 :(得分:0)
如果要计算a
的连接组件中Out
的像素值的平均值,则需要执行以下操作(假设a
是灰度值图像):
lab = bwlabel(Out);
stats = regionprops(lab,a,'PixelValues');
然后,对于每个stats.PixelValues
,计算均值:
m = zeros(size(stats))
for ii = 1:numel(stats);
m(ii) = mean(stats(ii).PixelValues);
end
或更简单:
m = cellfun(@mean,{stats.PixelValues})
请注意,regionprops
可以使用第二个输入图像调用,该图像包含灰色值。 'PixelValues'
属性是一个列表,其中包含每个连接组件的像素值。
为了进一步简化代码,您可以跳过调用bwlabel
,并直接将二进制图像传递给regionprops
:
stats = regionprops(Out,a,'PixelValues');