python - 3D 局部平均值和使用 3D 卷积

标签 python convolution

我是 Python 新手,但对 Matlab 更加熟悉。如果我的问题不适合这个论坛,请随时指出。

我正在尝试以非常快的速度取得本地平均值。这就像我试图通过为每个新像素计算多个像素的平均值来减少图像中的像素数量,但我是在 3D 中进行的。

想象一个 1000x1000x6 的数组。我将这个数组分成多个 10x10x3 的小数组。然后,我想计算所有这些微小数组的平均值,并将它们重新组合在一起以重建我的数组。

我在 Matlab 上的做法是使用 convn(array,seed,'valid') ,这是一个多维卷积函数。

用 python 实现这一点最简单的方法是什么? 谢谢 远程管理技术

最佳答案

我认为您能找到的与 convn 最接近的东西是 SciPy 的 convolve。下面是示例

import numpy as np
from scipy.ndimage import convolve
M = np.random.random((1000, 1000, 6))
seed = np.ones((3, 3, 3)) * 0.1 / 27.
N = convolve(M, seed, mode='constant', cval=0)

mode='constant', cval=0 只是零填充。

不确定这是否是您所需要的,但这是一个开始

文档:https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.ndimage.filters.convolve.html

关于python - 3D 局部平均值和使用 3D 卷积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53271222/

相关文章:

python - 如何创建过滤器不跨一维移动的转换层

python - 从日期时间创建 numpy linspace

python - 在 dynamodb 中返回具有最大排序键的项目

python - MySQL "data"文件夹不断增长,即使在 DROP TABLE 之后也是如此

python-requests 如何发送密码名/http2

python - ConvNet 中的 col2im 实现

error-correction - 需要面向 block 的纠错方案

tensorflow - 与 keras 进行注意卷积

c++ - 多 channel 核图像卷积

python - XMPP聊天: accessing contacts' status messages with xmppPy's Roster