2015-10-19 245 views
0

我有一个BW图像。我必须计算该图像的平均强度。为此,我必须存储该图像所有像素的单独强度值,然后计算平均强度。在这个计算中,我必须只计算非零像素的强度值(全黑像素,即强度值零不应计算)。我怎样才能做到这一点?使用Matlab计算BW图像的平均强度值

+4

使用逻辑索引中排除零个值像素和'mean'找到平均,所以如果你的形象是'I'然后'均值(平均(I(I> 0)))' – Dan

回答

1

你可以试试这个,但是如果图像的任何列都是0,这不起作用!

im=imread('imageBW.jpg'); 
    intensity=mean(sum(im)./sum(im~=0)); 
+0

这不如果图像的任何列全部为0,则工作。如果至少一列的总和为0,则由于“0/0”除法错误,您将得到'NaN'。 Dan的评论中的代码更合适。 – rayryeng

+0

我的不好,没错,Dan的回答更好! – hirotoshi

+0

没问题。如果你改变你的代码,以便它可以工作,我会删除我的downvote。如果您不改变它,downvote仍然会保留,因为此代码不起作用,并且对使用它的任何人有潜在的危险。 – rayryeng