2012-06-20 58 views
2

我花了几天的时间寻找解决方案来解决我的问题。我在找到一个大矩阵峰(约1400 x 2700)时遇到问题。我需要找到主峰和两个较小的峰 - 换句话说就是图中三个最大的峰。该矩阵是一个拟合图像的两个FFT的结果。主要问题是找到主峰的大小。我设法找到了中央高峰的最大值,但由于噪音,我无法找到它的末端。有人有任何想法或代码样本我可以看看找到解决方案吗?在java中找到二维矩阵的高峰

更新:还有一个相关的问题:如何有效地确定矩阵中的阈值(噪声)?如果我能成功地做到这一点,找到高峰将是容易的工作?

回答

0

如果您不关心峰的大小,您可以尝试先在矩阵上应用移动平均过滤器。这样,一方面可以降低高峰期的高度,另一方面可以消除噪音。

应用移动平均滤波器后,您可以查看矩阵的梯度,以确定峰值。

+0

我对峰值大小感兴趣..我的主要问题是找到这3个峰值的位置。因为有时我会发现主峰,接下来的两个,但有时我不能归功于主峰的大小。 –

+0

也许,难道你不能使用描述的“模糊”矩阵(降低噪声)来确定峰值所在的区域,然后只需扫描这些区域内的最高值? – theV0ID

+0

我会尝试使用它..在im完成过滤后,我使用渐变识别峰值? –