【发布时间】:2019-05-18 06:33:03
【问题描述】:
我在这方面花费了很多时间,并且我知道如何通过对边界行/列进行切片和索引来手动执行此操作,但是 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)
使用 SciPy ndimage uniform filter 使用 3x3 kernel 计算均值:
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
如您所见,第一个值为 11,这与预期的一样, 但是,对于边界上的任何单元格,它将用零填充值(我也尝试了所有其他模式)。
这是我需要实现的(左) vs mode=constant 和 CVAL=0(默认 0)
【问题讨论】:
标签: python image-processing scipy ndimage