在matlab中混淆Hist默认函数

时间:2013-01-15 15:47:59

标签: matlab

例如,我的图像矩阵看起来像这样:

1 2 3
1 5 6
1 5 3

假设我的强度从1到6,所以我需要产生类似数组的东西:

1 : 3
2 : 1
3 : 2
4 : 0
5 : 2
6 : 1

我尝试使用matlab的hist函数,但它产生的东西看起来真的很让我感到疑惑。 anybosy可以帮助我吗?
非常感谢

2 个答案:

答案 0 :(得分:1)

这里的关键是使用冒号运算符线性化图像矩阵,就像在hist(a(:))中一样。当hist(a)是矩阵时调用a将计算每列的直方图。

答案 1 :(得分:0)

我怀疑您可能没有为hist指定正确的直方图箱(默认情况下,它会创建10个等间距的箱)。如果您对简单的直方图计数感兴趣,请考虑使用histc

vals = 1:max(A(:));
count = histc(A(:), vals);

其中A是您的图像矩阵。 vals是所需输出数组中的第一列,count是第二列。