找到对应于每个强度峰值的像素值

时间:2014-06-19 16:19:10

标签: matlab matlab-guide

我有干涉条纹图案。我在其上应用了傅里叶变换,这给出了对应于每个空间频率的几个非常尖锐的峰值的图像。我的问题是,是否有任何方法(算法)来检测与这些强峰相对应的坐标(像素值)?

请注意,有多个峰值(但不是很多)具有不同的幅度。

1 个答案:

答案 0 :(得分:1)

您可以使用内置findpeaks,例如:

 [pks,locs] = findpeaks(data)

返回输入数据中的局部最大值或峰值pks,其中包含局部峰值locs的索引。输入data需要行或列向量,其中实值元素的最小长度为3。 findpeaks将每个数据元素与其相邻值进行比较。如果数据元素大于其两个邻居或等于Inf,则该元素是本地峰值。如果没有局部最大值,pks将是一个空矢量。

要设置阈值,请使用以下任一句柄:'MINPEAKHEIGHT''MINPEAKDISTANCE''THRESHOLD'

例如:

[pks,locs] = findpeaks(data,'MINPEAKHEIGHT',10)