python - 如何在 python 中应用 2d 和 3d 过滤器

标签 python scipy filtering signal-processing

我想在 python 中找到一个应用 2d 滤镜或 3d 滤镜的函数。该函数应接收过滤函数和数据。 像Matlab中的函数filter2imfilter, 或者像 python 中的函数 scipy.ndimage.gaussian_filter(),它可以处理 N 维但仅适用于高斯滤波器(我希望滤波器作为参数)

我想我可以编写一个使用多维卷积 (scipy.ndimage.convolve()) 应用过滤器的函数,但我对 1d 过滤器没有成功。 我用于一维过滤的代码: signal.convolve(signal, filter_, mode='same', method='auto'),它给出了与函数 signal.filtfilt(filter_, 1, signal, padlen=len(信号)-1)

是否有应用 N 维滤镜的函数? 如果没有,我该如何使用卷积函数?

谢谢!

最佳答案

scipy.ndimage.generic_filter(input, function, size, footprint) 会有帮助。

这是文档 scipy.ndimage.generic_filter和用法tutorial .

您可以使用footprintsize 来设计过滤范围。例如,size = 3footprint = [[1, 1, 1], [1, 1, 1], [1, 1, 1]] 设置以当前点为核心的3*3*3数组。 function 将其作为一维数组并返回所需的标量。您可以将 function(array) 定义为您的自定义过滤器。 通用过滤器将遍历 input 并默认使用 mode = 'reflect 处理边界。

关于python - 如何在 python 中应用 2d 和 3d 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59801475/

相关文章:

python - 如何检查 List A 中的元素是否不存在于 Python 的 List B 中?

python - python scipy中excel的LOGNORM.INV函数

html - 根据 URL 变量过滤 HTML 内容

javascript - 为什么使用多个条件过滤对象数组会返回空数组?

python - 使用gabor内核提取垂直线会产生黑色图像

python - Django 中的高级数据库查询

python - 如何在Python中打印字典键值的平均值?

python - 包含负虚轴切削的编程功能

python - 使用 mypy 处理条件逻辑 + 标记值

python - kind 参数的不同值在 scipy.interpolate.interp1d 中意味着什么?