例如,我有一个看起来像这样的图像矩阵:
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 函数,但它产生的东西对我来说真的很奇怪。任何人都可以帮助我吗?
非常感谢你
例如,我有一个看起来像这样的图像矩阵:
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 函数,但它产生的东西对我来说真的很奇怪。任何人都可以帮助我吗?
非常感谢你
这里的关键是使用冒号运算符对图像矩阵进行线性化,如hist(a(:))
. 调用hist(a)
when a
is a matrix 将计算每列的直方图。
我怀疑您可能没有指定正确的直方图箱hist
(默认情况下,它会创建 10 个等间距的箱)。如果您对简单的直方图计数感兴趣,请考虑使用histc
:
vals = 1:max(A(:));
count = histc(A(:), vals);
A
你的图像矩阵在哪里。vals
是您想要的输出数组中的第一列,并且count
是第二列。