我正在开发一款软件,需要实现一组数据的波动性。以下是我可以获得的输入样本,并合并每个垂直像素条的亮度图:
![alt text](https://istack.dev59.com/coUW6.webp)
可以很容易地看出左边缘非常起伏(即具有大量极小值/极大值),我想生成图像的一组关键点。我已经对数据应用了高斯平滑函数约10次,但开始时它似乎已经非常起伏。
有什么好的想法吗?
下面是我的原始代码,但是它没有产生非常好的结果(对于波动):
def local_maximum(list, center, delta):
maximum = [0, 0]
for i in range(delta):
if list[center + i] > maximum[1]: maximum = [center + i, list[center + i]]
if list[center - i] > maximum[1]: maximum = [center - i, list[center - i]]
return maximum
def count_maxima(list, start, end, delta, threshold = 10):
count = 0
for i in range(start + delta, end - delta):
if abs(list[i] - local_maximum(list, i, delta)[1]) < threshold: count += 1
return count
def wiggliness(list, start, end, delta, threshold = 10):
return float(abs(start - end) * delta) / float(count_maxima(list, start, end, delta, threshold))