4

中的几个函数scipy.ndimage.filters,包括scipy.ndimage.filters.convolve,都有一个“模式”参数,用于定义它在边界处的行为方式。mode='constant'对超出边界的点使用常量值,同时mode='wrap'环绕。这适用于所有轴。

我想对二维数组(例如)进行卷积,以便:

  • 边界外的轴 0 点环绕
  • 边界外轴 1 的点是常数

最有效的方法是什么?

4

1 回答 1

3

我可以mode='wrap'在我想要保持不变的轴的末端使用并添加一些死区:

import numpy
from scipy import misc, ndimage

lena = misc.lena()
image = numpy.vstack((lena, numpy.zeros(lena.shape[1])))
weights = numpy.array([[1, 1, 1],
                    [1, 8, 1],
                    [1, 1, 1]])/16.
convimage = ndimage.convolve(image, weights, mode='wrap')[0:lena.shape[1],]
于 2013-09-21T16:58:49.553 回答