def __init__(self, n, axis, order=2, mode='valid'):
"""
Construct gradient operator for signal of dimension *n* for
dimension *axis*. Use a filter kernel of length *order* (must
be even). Use convolution type *mode*.
"""
self.n = n
self.ndim = len(self.n)
self.axis = axis
if axis < 0 or axis >= self.ndim:
raise ValueError('0 <= axis (= {0}) < ndim = {1}'.format(axis, self.ndim))
self.d = differentiator(order)
h_list = []
for i in reversed(range(self.ndim)):
if i == axis:
h_list.append(self.d)
else:
h_list.append(NP.array([1]))
super(GradientFilter, self).__init__(n, h_list, mode=mode)
评论列表
文章目录