Получить координаты локальных максимумов в 2D-массиве выше определенного значения

from PIL import Image
import numpy as np
from scipy.ndimage.filters import maximum_filter
import pylab

# the picture (256 * 256 pixels) contains bright spots of which I wanna get positions
# problem: data has high background around value 900 - 1000

im = Image.open('slice0000.png')
data = np.array(im)

# as far as I understand, data == maximum_filter gives True-value for pixels
# being the brightest in their neighborhood (here 10 * 10 pixels)

maxima = (data == maximum_filter(data,10))
# How can I get only maxima, outstanding the background a certain value, let's say 500 ?

Боюсь, я не совсем понимаю функцию scipy.ndimage.filters.maximum_filter () . Есть ли способ получить пиксельные координаты только внутри пятен, а не в пределах фона?

http://i.stack.imgur.com/RImHW.png (16-битное изображение в оттенках серого, 256 * 256 пикселей)

23
задан Chris 2 February 2012 в 14:41
поделиться