我有一个带符号的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
答案 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');