algorithm - 矩阵中的峰值检测算法

标签 algorithm detection noise maxima

考虑表示二维信号的双维矩阵 Z = s(X,Y)。这个信号有几个高斯峰和一个背景高斯噪声。下图给出了此类信号的示例:

enter image description here

我想找到一种算法,在给定多个输入的情况下找到这些峰值:

  • 一个阈值(z 轴),低于该阈值算法预计不会找到任何峰值
  • 为了让算法考虑两个峰值而不是一个峰值(x 和 y 方向上的距离),必须将两个峰值分开的最小距离

我首先想到使用 MATLAB 提供的函数 findpeaks。不过这个函数好像不提供对矩阵的支持。

最佳答案

来自 matlab答案, findpeaks 函数可以工作,但您必须循环遍历行:

M = randi(99, 4, 8);
for k1 = 1:size(M,1)
    [pks,loc] = findpeaks(M(k1,:));
    P{k1} = [pks; loc];
end

元胞数组说明了每行中不同数量的峰和位置。您可以使用它来查找峰值。
关于

I would like to find an algorithm that finds these peaks given several inputs :

A threshold (z-axis) below which the algorithm is not expected to find any peaks The minimum distance that must separates two peaks in order for the algorithm to account for two peaks instead of one (distance in both x and y directions)

不太确定。

关于algorithm - 矩阵中的峰值检测算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43847265/

相关文章:

javascript - 使用jQuery检测设备是否可以调用电话(支持 "tel://"协议(protocol))

matlab - Matlab 中基于傅里叶的字符识别

java - 为什么噪声算法使用 256 个排列值?

python - 找出字符连续的最长子串,这里的字符串可能是乱码

algorithm - 在二维矩阵中搜索另一个更小尺寸矩阵的有效方法

algorithm - 2个序列之间的最佳映射

machine-learning - 如何验证什么是噪音什么是真实数据?

javascript - 如何实现二维几何的约束求解器?

javascript - 如何编写脚本来检测网站上的 Activity 按钮?

java - 柏林噪音发生器的奇怪结果