所有相等值的Scipy最大过滤器

时间:2016-09-01 10:30:25

标签: python scipy filtering

我想使用scipy的maximum_filter来检测局部最大值,但有一个问题。如果过滤器对全部相等的值应用函数,则将它们全部作为局部最大值返回,但我需要以相反的方式使用它们。

示例脚本:

import numpy as np
import scipy.ndimage as sc

ones_matrix = np.ones((6,6))

max_arr = (ones_matrix == sc.maximum_filter(ones_matrix, 3, mode = 'constant'))
print max_arr

这将返回所有True,但我需要它们为false。我怎样才能做到这一点?提前谢谢!

[[ True  True  True  True  True  True]
 [ True  True  True  True  True  True]
 [ True  True  True  True  True  True]
 [ True  True  True  True  True  True]
 [ True  True  True  True  True  True]
 [ True  True  True  True  True  True]]

1 个答案:

答案 0 :(得分:1)

你可以改变你的句子:

max_arr = (ones_matrix == sc.maximum_filter(ones_matrix, 3, mode = 'constant'))

这个:

max_arr = (ones_matrix != sc.maximum_filter(ones_matrix, 3, mode = 'constant'))