在matlab中计算图像中的像素概率

时间:2014-03-31 10:56:13

标签: matlab image-processing distribution

我有一个带符号的16位图像(像素范围从0到超过256)。我想计算像素的概率并保存到文件。如何在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

2 个答案:

答案 0 :(得分:3)

使用histc

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

所需格式的结果为

result = [values prob];

答案 1 :(得分:1)

将直方图结果保存为文本文件

save(filename, variable,'ascii');