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

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

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

  • 执行此操作的最有效方法是什么?

    最佳答案

    我可以使用 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],]
    

    关于python - scipy.ndimage.filters.convolve - 沿不同轴的不同模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18935037/

    10-10 20:27