【问题标题】:Get interest area of a Histogram (Int Array)获取直方图的感兴趣区域(Int​​ Array)
【发布时间】:2013-05-16 09:59:15
【问题描述】:

我有一个完整的值 (0-255) 的 int 数组,我需要提取两个索引。

要找到的索引将代表我想要关注的有趣领域。

该区域的值总是高于其他区域,但有时差异很小。

像这个例子:

我的兴趣领域是:

我目前的方法是获取最大值和平均值。然后我会得到:

  • 大于“Max - (Max - Average)”的第一个索引。
  • 最后一个大于“Max - (Max - Average)”的索引。

但有时,就像在这种情况下,我的方法会得到垃圾部分。 (右侧第五个“列”)

谁能提出更好的方法?

注意: 兴趣区域总是像示例图像一样有 4 个“列”

【问题讨论】:

    标签: algorithm image-processing pattern-matching histogram


    【解决方案1】:

    您可以对直方图应用简单的脉冲响应滤波器(例如 Boxcar)或任何其他平滑方式来减少高频分量。之后,您可以计算局部最小值和最大值,并在有助于缩小 ROI 的带宽内精确定位各个峰值(每个峰值的最大-最小-最大-最小)。

    这是我的一个简单的Boxcar 过滤器实现。

    【讨论】:

      【解决方案2】:

      也许我假设太多了。但是您的数据使 4 座“山”周围看起来有很强的“边缘”。所以你应该看看那些edge/ridge detection 算法组的想法。

      我最简单的答案是先尝试阈值化。看看有没有用。

      如果不是,可能会应用一维版本的过滤器,例如Sobel filter。 它们应该突出显示数据中二阶导数较大的重要点。

      【讨论】:

        猜你喜欢
        • 2011-08-10
        • 2018-06-17
        • 2018-01-15
        • 2012-02-22
        • 2018-08-15
        • 2013-03-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多