4

我有两个关于将高斯曲线拟合到直方图峰值的问题。我的第一个问题是一个非常基本的问题:

  1. 如何将高斯曲线拟合到整个直方图?这是否仅意味着我必须找出并计算直方图的平均值(μ)和偏差(ϭ)并将它们放入高斯曲线的公式中?

以下示例是否正确?:假设(仅作为示例)我有一个具有 5 个颜色值的图像的直方图。在 X 轴上有这 5 个颜色值,在 Y 轴上有每个值的频率。IE:

价值1:1次

价值2:4倍

价值3:7倍

价值4:3倍

价值5:2倍

现在平均值 (µ) 将是 3(µ = 3)。

偏差 (ϭ) 将是 0.9 (ϭ = 0.9)。公式:

现在我在密度函数的公式中使用这些值来计算我的高斯曲线?

那是对的吗?不幸的是,我对数学背景有点不安全。

  1. 我的第二个问题有点棘手:这一次,我有一个有几个峰值的直方图,但我只想将高斯曲线拟合到最高峰。所以,我用一个简单的 for 循环遍历直方图的所有 bin,并在 x 轴上找到一个强度值(包含图像的强度),频率最高(显示在 y 轴上)。这将是最高峰。但是我如何找出偏差呢?特别是,因为我不知道我应该在计算中包含哪些强度值。据我所知,高斯曲线的转折点位于 µ+ϭ 和 µ-ϭ。能不能帮助解决问题。

很抱歉这个问题有点数学,但我没有找到更好的地方来问这个问题。我还阅读了一些类似的主题,但不幸的是,他们最终没有回答我的问题。

谢谢你的帮助!

问候马克

4

2 回答 2

4

您对单个峰的简单方法应该没问题。[顺便说一句,如果它与图像有关,我认为这确实是一个编程问题。]

多峰更难。解决峰值的过程称为反卷积http://en.wikipedia.org/wiki/Deconvolution),通常没有唯一的答案。您可能必须确定有多少个峰值,或者一个峰值的最小方差是多少(否则您可以为每个 bin 创建一个峰值 :-))。

于 2009-12-20T15:22:57.607 回答
3

我认为,您估计单个高斯参数的方法是正确的。

对于多个高斯,您可能需要查找混合模型 或更具体的高斯混合。对此仅作几点说明:

  1. (你可能已经知道了)混合中最强的高斯不一定是最高峰的那个
  2. 如果您有两个具有不同平均值的高斯总和,则直方图中的峰值与平均值不匹配
  3. 在离散直方图中使用单个峰的高度可能不是一个好主意:实际峰可能位于两个直方图箱之间。[澄清:在这种情况下,两个 bin 中的计数可能明显低于 bin 中心的峰值。]此外,对于大多数类型的数据,您的直方图将包含大量噪声。至少在直方图上使用某种平均滤波器。
于 2009-12-21T08:37:53.690 回答