python - 如何将二项式 1-2-1 过滤器应用于 2D numpy 数组?
问题描述
我正在尝试将二项式 1-2-1 过滤器应用于 Python 中形状为 (800, 800) 的二维数据数组,使其平滑并且数据中的任何噪声都消失了,但一般圆形特征随着减少图中显示的值被保留。我知道这篇文章及其答案:如何将二项式低通滤波器应用于 NumPy 数组中的数据? 但是,我在那篇文章中找到的方法似乎主要适用于一维数据,而我想过滤一个二维数组。对于在 2-DI 上有效的方法,我确信我做得不对,但我不知道正确的方法是什么。
#Gives binomial coeffs for convolution with data when we want to apply a binomial 1-2-1 low-pass filter n times
coeffs=np.asarray([0.25, 0.5, 0.25])
for _ in range(n):
coeffs = convolve(coeffs, np.asarray([0.25, 0.5, 0.25]))
return coeffs
尝试1:
bicoeffs=binomcoeffs(450)
filtered_p=lfilter(bicoeffs, [1.0], psfc, axis=0)
#Results in filtered data that does not look right at all.
尝试2:
bicoeffs=binomcoeffs(450)
[ylen, xlen]=np.shape(psfc)
test3=np.zeros((ylen, xlen))
for xi in np.arange(xlen):
test3[:, xi]=convolve(psfc[0:799, xi], bicoeffs, mode='valid')
任何关于我做错了什么的意见将不胜感激。
解决方案
推荐阅读
- jquery - 如何根据其中的元素使用 Jquery 隐藏 div
- php - 在刀片 laravel 中有数组的 foreach 数组
- python - 获取IndexError:计算欧几里得距离时列表索引超出范围
- node.js - 列出 node.js 应用中的 gcloud 存储桶文件
- java - 用 Java 计算闰年绕过了 else 语句
- c# - 如何在使用 c# for ASP.NET Wep Api 拍摄此视频的同时在文件夹上实时上传视频?
- amazon-web-services - 用于 DynamoDB 更改的 Lambda 触发器
- javascript - Javascript卡在“其他”
- elasticsearch - How to apply filter only if nested mapping exists
- python - PyLint 检测在 if 语句或 with ... as 类定义中定义和使用的未定义变量