scipy.ndimage.filters
中的一些功能,包括scipy.ndimage.filters.convolve
,具有"模式"定义它在边界处的行为的参数。 mode='constant'
对超出边界的点使用常量值,而mode='wrap'
包围。这适用于所有轴。
我想对二维数组进行卷积(例如),以便:
最有效的方法是什么?
答案 0 :(得分:2)
我可以使用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],]