【发布时间】:2015-04-13 06:05:56
【问题描述】:
我想对一个数组执行基本的移动平均卷积,其中每个像素都替换为其周围像素的平均值。
但我的问题场景是这样的:
- 我有两个数组 valueArray 和 radiiArray。两个阵列具有相同的形状。
- 我需要将移动平均值应用于 valueArray,但我希望使用不同的半径来计算每个像素的平均值,而不是使用恒定半径来获取相邻像素 - 其值被存储在 radiiArray
我可以使用 for 循环 来实现它,但这会很耗时,因为数组太大了。这可以使用 numpy 库吗?
【问题讨论】:
-
给我们一个使用循环的简单例子。用您的案例更容易测试和解释想法。是1d还是2d?重叠的窗口?
-
as_strided今天被提到用于另一个移动窗口案例,但可能不适用于不同的半径。np.sum.reduceat有一些可能性。dot数据与weight向量的乘积是另一种可能性(scipy sparse implementssum` 与矩阵乘积)。 -
数组是 2d 并且有重叠的窗口,因为每个像素都取相邻平均值。
-
使用 2d,您必须深入研究成像模块。我在
numpy中没有任何魔法。 -
我四处搜索,但没有任何成像模块可以执行上述任务。任何人都可以指定一个可以进行上述卷积的模块吗?