【问题标题】:Count Pixel probability in image in matlab在matlab中计算图像中的像素概率
【发布时间】:2014-03-31 19:36:48
【问题描述】:

我有一张带符号的 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

【问题讨论】:

    标签: matlab image-processing distribution


    【解决方案1】:

    使用histc:

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

    所需格式的结果将是

    result = [values prob];
    

    【讨论】:

    • 谢谢先生,但我想保存在一个有 2 列的数组中。我按照我的风格修复了它。这是对的吗?谢谢
    【解决方案2】:

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

    save(filename, variable,'ascii');
    

    【讨论】:

      猜你喜欢
      • 2023-02-07
      • 2011-04-16
      • 2022-01-07
      • 2012-03-09
      • 1970-01-01
      • 2012-08-03
      • 2015-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多