你想要做的是找到高对比度的峰值.因此,您需要一种方法来识别局部最大值,以及一种测量峰值和周围值之间差异的方法.对这种差异进行阈值处理将为您确定脉冲峰值.
假设您的输入信号被称为信号
%# dilate to find, for every pixel, the maximum of its neighbors
dilationMask = ones(3);
dilationMask(5) = 0;
dilSignal = imdilate(signal, dilationMask);
%# find all peaks
%# peaks = signal > dilSignal;
%# find large peaks peaks by thresholding, i.e. you accept a peak only
%# if it's more than 'threshold' higher than its neighbors
peaks = (signal - dilSignal) > threshold;
峰值是一个逻辑数组,只要有一个良好的峰值,就会有1.您可以使用它从信号(峰值)信号中读取峰值高度,并使用查找(峰值)查找坐标.