相关疑难解决方法(0)

如何使用 SciPy Image 应用统一过滤器,其中边界外的数据不被统计?

我在这方面花了很多时间,并且我知道如何通过对边界行/列进行切片和索引来手动完成此操作,但 SciPy 必须有一种更简单的方法。

我需要将CVAL(当 时填充超出边缘的值mode=constant) 设置为 NaN,但是,这将返回 NaN。

我用代码和图来解释一下:

import numpy as np
from scipy import ndimage
m = np.reshape(np.arange(0,100),(10,10)).astype(np.float)
Run Code Online (Sandbox Code Playgroud)

输入数组的图片 使用 SciPy ndimage 均匀滤波器使用 3x3 内核计算平均值:

filter = ndimage.uniform_filter(m, size=3, mode='constant')
print(filter[1][1]) # equal to 11
print(filter[9][9]) # I need 93.5, however it gets 41.55 due to zeros
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,第一个值显示为 11,这符合预期,但是,对于边界上的任何单元格,它将用零填充值(我还尝试了所有其他模式)。

这是我需要实现的目标(左)与mode=constantCVAL=0(默认 0)

scipy avg 和我需要什么

python image-processing scipy ndimage

5
推荐指数
1
解决办法
4977
查看次数

标签 统计

image-processing ×1

ndimage ×1

python ×1

scipy ×1