2015-10-19 266 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