2014-03-31 88 views
0

我有一個有符號的16位圖像(像素範圍從0到256以上)。我想計算像素的概率並保存到文件。如何在matlab中做到這一點。我嘗試通過我的代碼來做到這一點。但它不是成功的。我的風格是計算matlab中圖像的像素概率

Pixel Value | Prob 
      1 | 0.1 
      2 | 0.2 
      3 | 0.03 
    ... 

這是我的代碼

im=imread('test.bmp'); 
im=double(im); 
[m n]=size(im); 
p=zeros(2,max(im(:))); 
im=im(:); 
imsort=sort(im); 
for j=1:max(imsort(:)) 
    p(1,j)=j; 
    count=sum(j==im(:)); 
    p(2,j)=count/(m*n); 
end 

回答

3

使用histc

values = (0:2^16-1).'; 
count = histc(im(:), values); 
prob = count/sum(count); 

所需格式的結果將是

result = [values prob]; 
+0

謝謝主席先生,但我想保存在一個有2列的數組中,並且我用我的風格來修復它。這是對的嗎?感謝 – user3336190

+0

請參閱編輯 –

1

爲了節省直方圖結果作爲文本文件

save(filename, variable,'ascii');