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

前段时间我在前面的帖子中已经问了一个类似的问题。到目前为止,我遗憾地无法完全解决这个问题,只能解决这个问题。由于很难在前一个线程中包含所有新信息 我在这里发布了一个带有不同上下文的精炼和扩展问题,并将其链接到旧线程。 我目前正在从一篇论文中实现一种算法,该算法通过动态识别数据集直方图中的值范围来提取3D数据集的某些区域。 以简化的方式,该方法可以描述如下: 找到直方图中的最高峰 适合高峰的高斯 使用由高斯定义的值范围表示(μ)+/-偏差(ϭ)某些区域 识别直方图,并从原始直方图中去除这些区域的体素(= 3D像素)。 作为上一步的结果,应该揭示出一个新的最高峰 可以重复步骤1-3。重复这些步骤,直到数据集直方图为空。 我的问题涉及上述描述的第1步和第2步,其描述如下:“确定最高峰,并将高斯曲线拟合其形状。高斯通过其中点μ,高度h和偏差来描述ϭ。拟合过程最小化直方图和高斯中间部分之间的累积高度差。误差求和范围是 μ+ /ϭ? “1 在下文中,我将问我的问题并添加我对它们的反思: 我该如何识别描述最高峰的总直方图中的那些箱?为了识别它的顶点,我只需运行直方图并存储具有最高频率的bin的索引。但是,峰值的延伸应该到达最高区域的左侧和右侧。目前,只要下一个箱子比前一个箱子小,我就可以直接进入最高箱子的左右两侧。然而,这通常是非常小的范围,因为直方图中出现折痕(迷你峰)。我已经考虑过平滑直方图了。但是在每次迭代之后我都必须这样做,因为减去体素(上面的描述中的步骤3)可以使直方图再次包含折痕。而且我也担心重复的平滑会扭曲结果。 因此,我想问一下,是否有一种有效的方法来检测峰值的延伸,这比我目前的方法更好。在前一个帖子中有关于混合模型和反卷积的建议。但是,如果直方图的形状在每次迭代后不断变化,这些方法是否真的合理? 如何将高斯曲线拟合到所识别的峰值,以使直方图和高斯中间部分之间的累积高度差最小化? 根据上一个问题中的问题,我通过计算它们的平均值和偏差来将曲线拟合到给定范围的直方图区间(我希望这是正确的?!)。但是,如何从这一点最小化直方图和高斯中间部分之间的累积高度差异? 谢谢您的帮助! 关心马克     
已邀请:
向左和向右添加直方图值,直到拟合的良好性开始降低。     

要回复问题请先登录注册