Определите «подвижность» набора data - Python

Я работаю над программным обеспечением, которое должно реализовать волнистость набора данных. Вот образец входных данных, которые я получу, объединенный с графиком яркости каждой вертикальной полосы пикселей: m работает над программным обеспечением, которое должно реализовывать непостоянство набора данных. Вот образец входных данных, которые я получу, объединенный с графиком яркости каждой вертикальной полосы пикселей: ...

Я работаю над программным обеспечением, которое должно реализовать волнистость набора данных. Вот образец входных данных, которые я получу, объединенный с графиком яркости каждой вертикальной полосы пикселей: m работает над программным обеспечением, которое должно реализовывать непостоянство набора данных. Вот образец входных данных, которые я получу, объединенный с графиком яркости каждой вертикальной полосы пикселей: ...

Я работаю над программным обеспечением, которое должно реализовать волнистость набора данных. Вот образец входных данных, которые я получу, объединенный с графиком яркости каждой вертикальной полосы пикселей: alt text

Легко видеть, что левое поле на самом деле шаткое (т.е. имеет тонну минимумов / максимумов), и я хочу создать набор критических точек изображения. Я применял функцию сглаживания по Гауссу к данным ~ 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))
13
задан Robie Basak 17 November 2010 в 18:26
поделиться