我有干涉条纹图案。我在其上应用了傅里叶变换,这给出了对应于每个空间频率的几个非常尖锐的峰值的图像。我的问题是,是否有任何方法(算法)来检测与这些强峰相对应的坐标(像素值)?
请注意,有多个峰值(但不是很多)具有不同的幅度。
答案 0 :(得分:1)
您可以使用内置findpeaks
,例如:
[pks,locs] = findpeaks(data)
返回输入数据中的局部最大值或峰值pks
,其中包含局部峰值locs
的索引。输入data
需要行或列向量,其中实值元素的最小长度为3。 findpeaks
将每个数据元素与其相邻值进行比较。如果数据元素大于其两个邻居或等于Inf,则该元素是本地峰值。如果没有局部最大值,pks
将是一个空矢量。
要设置阈值,请使用以下任一句柄:'MINPEAKHEIGHT'
,'MINPEAKDISTANCE'
或'THRESHOLD'
例如:
[pks,locs] = findpeaks(data,'MINPEAKHEIGHT',10)