0
我在手動創建灰度圖像中灰度值的直方圖時遇到了一些麻煩。以下是我正在使用爲要創建的圖創建箱的代碼。該代碼適用於除最後兩個之外的每個bin。由於某些原因,如果強度爲254或255,則它將兩個值都放入254箱中,並且在255箱中不累計任何值。使用Matlab數組的奇怪行爲
bins= zeros(1,256);
[x,y]=size(grayImg);
for i = 1:x
for j = 1:y
current = grayImg(i,j);
bins(current+1) = bins(current+1) + 1;
end
end
plot(bins);
我不明白爲什麼這種行爲發生。我已經打印出254個強度和255個強度的計數,它們都是正確的。但是,使用上述代碼累積強度值時,它無法正常工作。
編輯:增加了我使用的圖像,不正確的圖形(一個我用上面的代碼獲得),以及正確的
感謝您的迴應,我曾嘗試使用箱=零(1,256),但沒有幫助。我也知道有關hist函數,但我試圖通過不使用函數中的構建來創建圖形。 – EricF
哪種格式是'grayImg'?如果是uint8,嘗試用double函數將它轉換爲double。 – Adiel
是的,它是單位8.感謝你的回答,我真的明白了這一點。我必須做的是轉換爲int16,因爲8位數字的值不能是256,這正是我想要做的。 – EricF