我有一个包含值(0-255)的int数组,我需要提取两个索引。
要找到的索引将代表我想要关注的有趣领域。
这一区域的值总是高于其它区域的值,但有时差异很小。
就像这个例子:

我感兴趣的领域是:

我目前的方法是得到最大值和平均值。然后我会得到:
但有时,就像在这种情况下,我的方法得到垃圾部分。(右边第五栏)
有人能提出更好的办法吗?
注意:感兴趣的区域总是有4个“列”,如示例图像。
发布于 2013-05-21 15:27:44
您可以应用一个简单的脉冲响应过滤器,如Boxcar或任何其他方法平滑到您的直方图,以减少高频成分。在此之后,您可以计算局部最小值和最大值,并在带宽内计算单个峰值(最大-最小-最大-最小-每峰值),这将有助于缩小ROI。
这里是一个简单的箱式车过滤器实现的地雷。
发布于 2013-05-21 19:40:24
也许我想得太多了。但是你的数据显示,在4座“山脉”周围有很强的“边缘”。因此,您应该看看那些边缘/脊检测算法组的idea。
我最简单的回答是先尝试脱粒。看看能不能。
如果没有,可以应用一维版本的过滤器,如Sobel滤波器。它们应该突出你的数据中的重要点,在那里二阶导数很大。
https://stackoverflow.com/questions/16673323
复制相似问题