gpt4 book ai didi

python - 用python卷积周期图像

转载 作者:太空宇宙 更新时间:2023-11-03 13:46:55 36 4
gpt4 key购买 nike

我想对概念上周期性的 n 维图像进行卷积。

我的意思是:如果我有一个二维图像

>>> image2d = [[0,0,0,0],
... [0,0,0,1],
... [0,0,0,0]]

我想将它与这个内核进行卷积:

>>> kernel = [[ 1,1,1],
... [ 1,1,1],
... [ 1,1,1]]

那么我想要的结果是:

>>> result = [[1,0,1,1],
... [1,0,1,1],
... [1,0,1,1]]

如何在 python/numpy/scipy 中做到这一点?

请注意,我对创建内核不感兴趣,但主要是卷积的周期性,即结果图像中最左边的三个(如果有意义的话)。

最佳答案

这已经内置,scipy.signal.convolve2d 的可选 boundary='wrap' 给出周期性边界条件作为卷积的填充。这里的 mode 选项是 'same' 使输出大小与输入大小匹配。

In [1]: image2d = [[0,0,0,0],
... [0,0,0,1],
... [0,0,0,0]]

In [2]: kernel = [[ 1,1,1],
... [ 1,1,1],
... [ 1,1,1]]

In [3]: from scipy.signal import convolve2d

In [4]: convolve2d(image2d, kernel, mode='same', boundary='wrap')
Out[4]:
array([[1, 0, 1, 1],
[1, 0, 1, 1],
[1, 0, 1, 1]])

这里唯一的缺点是您不能使用通常更快的 scipy.signal.fftconvolve

关于python - 用python卷积周期图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18172653/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com