首页 文章

直方图峰值识别和高斯拟合,c . 的累积高度差最小

提问于
浏览
3

我在前面的帖子中已经问了一个类似的问题:previous thread . 到目前为止,我遗憾地无法完全解决这个问题,只能解决这个问题 . 由于很难在前一个线程中包含所有新信息,因此我在此处发布了具有不同上下文的精炼和扩展问题,并将其链接到旧线程 .

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

  • 在直方图中找到最高峰

  • 在峰值处安装高斯

  • 使用由高斯定义的值范围表示(μ)/ - 偏差(ϭ)识别直方图的某些区域,并从原始直方图中移除这些区域的体素(= 3D像素) .

  • 作为上一步骤的结果,应该显示新的最高峰值,基于该峰值可以重复步骤1-3 . 重复这些步骤,直到数据集直方图为空 .

我的问题涉及上述描述的第1步和第2步,该描述如下:"The highest peak is identified and a Gaussian curve is fitted to its shape. The Gaussian is described by its midpoint µ, height h and deviation ϭ. The fitting process minimizes the accumulated height difference between the histogram and the middle part of the Gaussian. The error summation range is µ+/ϭ? " 1

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

  • 如何识别描述最高峰的总直方图中的那些箱?为了识别它的顶点,我只需运行直方图并存储具有最高频率的bin的索引 . 但是,峰值的延伸应该到达最高区域的左侧和右侧 . 目前,只要下一个箱子比前一个箱子小,我就可以直接进入最高箱子的左右两侧 . 然而,这通常是非常小的范围,因为在直方图中出现折痕(微小峰值) . 我已经考虑过平滑直方图了 . 但是在每次迭代之后我都必须这样做,因为减去体素(上面的描述中的步骤3)可以使直方图再次包含折痕 . 而且我也担心重复的平滑会扭曲结果 . 因此,我想问一下,是否有一种有效的方法来检测峰值的延伸,这比我目前的方法更好 . 有关混合模型和反卷积的建议在previous thread中 . 但是,如果直方图的形状在每次迭代后不断变化,这些方法是否真的合理?

  • 如何将高斯曲线拟合到所识别的峰值,以使直方图和高斯中间部分之间的累积高度差最小化?根据previous thread中的问题,我通过计算它们的平均值和偏差将曲线拟合到给定范围的直方图箱(我希望这是正确的?!) . 但是,如何从这一点最小化直方图和高斯中间部分之间的累积高度差异?

谢谢您的帮助!关心马克

1 回答

  • 1

    向左和向右添加直方图值,直到拟合的良好性开始降低 .

相关问题