3

前段时间我已经在以下线程中问过类似的问题:上一个线程。不幸的是,直到现在我还不能完全解决这个问题,只能解决。由于很难将所有新信息包含在前一个线程中,我在这里发布了一个具有不同上下文的改进和扩展问题,并将其链接到旧线程。

我目前正在从一篇论文中实现一种算法,该算法通过动态识别数据集直方图中的值范围来提取 3D 数据集的某些区域。以简化的方式,该方法可以描述如下:

  1. 在直方图中找到最高峰
  2. 将高斯拟合到峰值
  3. 使用由高斯平均值 (µ)+/- 偏差 (ϭ) 定义的值范围来识别直方图的某些区域,并从原始直方图中移除这些区域的体素(=3D 像素)。
  4. 作为上一步的结果,应该显示一个新的最高峰,在此基础上可以重复步骤 1-3。重复这些步骤,直到数据集直方图为空。

我的问题与上述描述的第 1 步和第 2 步有关,在论文中描述如下:“识别出最高峰,并将高斯曲线拟合到其形状。高斯由其中点 µ、高度 h 和偏差描述ϭ.拟合过程最小化直方图与高斯中间部分的累积高度差。误差求和范围为μ+/ϭ?” 1

在下文中,我将提出我的问题并添加我对它们的思考:

  1. 我应该如何识别描述最高峰的总直方图的那些箱?为了识别它的顶点,我简单地遍历直方图并存储频率最高的 bin 的索引。但是峰值的延伸应该到达最高 bin 的左侧和右侧多远。目前,只要下一个 bin 比前一个 bin 小,我就简单地从最高 bin 的左侧和右侧移动。然而,这通常是一个非常小的范围,因为在直方图中会出现折痕(迷你峰)。我已经考虑过平滑直方图。但是我必须在每次迭代后这样做,因为体素的减法(上面描述中的第 3 步)会导致直方图再次包含折痕。而且我也担心重复的平滑会扭曲结果。因此,我想问一下是否有一种比我目前的方法更好的检测峰值扩展的有效方法。有关于混合模型和反卷积的建议上一个线程。但是,如果直方图的形状在每次迭代后不断变化,这些方法真的合理吗?
  2. 如何将高斯曲线拟合到识别的峰值,以使直方图和高斯中间部分之间的累积高度差最小化?根据上一个线程中的问题一个,我通过计算它们的均值和偏差将曲线拟合到给定范围的直方图箱(我希望这是正确的?!)。但是如何从这一点最小化直方图和高斯中间部分之间的累积高度差?

感谢您的帮助!问候马克

4

1 回答 1

1

将直方图值添加到左侧和右侧,直到拟合优度开始下降。

于 2011-04-09T16:23:40.097 回答