0

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

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 函数,但它产生的东西对我来说真的很奇怪。任何人都可以帮助我吗?
非常感谢你

4

2 回答 2

1

这里的关键是使用冒号运算符对图像矩阵进行线性化,如hist(a(:)). 调用hist(a)when ais a matrix 将计算每列的直方图。

于 2013-01-15T15:56:56.780 回答
0

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

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

A你的图像矩阵在哪里。vals是您想要的输出数组中的第一列,并且count是第二列。

于 2013-01-15T15:52:37.297 回答