获得直方图(Int Array)的感兴趣区域

Uni*_*rs3 5 algorithm image-processing histogram pattern-matching

我有一个充满值(0-255)的int数组,我需要提取两个索引.

要找到的索引将代表我想要关注的兴趣区域.

该区域的值总是高于其他区域,但有时差异非常小.

像这个例子:

在此输入图像描述

我的兴趣领域是这样的:

在此输入图像描述

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

  • 第一个索引大于"Max - (Max - Average)".
  • 最后一个索引大于"Max - (Max - Average)".

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

任何人都可以提出更好的方法?

注意:感兴趣区域总是有4个"列",就像示例图像一样

Bjo*_*hak 0

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

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