python - 如何高斯过滤(模糊)浮点numpy数组

标签 python numpy opencv python-imaging-library filtering

我有一个 float64 类型的 numpy 数组 a。如何使用高斯滤波器模糊这些数据?

我试过了

from PIL import Image, ImageFilter

image = Image.fromarray(a)
filtered = image.filter(ImageFilter.GaussianBlur(radius=7))

,但这会产生 ValueError: 'image has wrong mode'。 (它有模式F。)

我可以通过将 a 与某个常数相乘,然后四舍五入为整数来创建合适模式的图像。这应该可行,但我想有一个更直接的方法。

(我使用的是 Pillow 2.7.0。)

最佳答案

如果你有一个二维的numpy数组a,你可以直接对它使用高斯滤波器,而不用先用Pillow把它转换成图像。 scipy 有一个函数gaussian_filter也一样。

from scipy.ndimage.filters import gaussian_filter

blurred = gaussian_filter(a, sigma=7)

关于python - 如何高斯过滤(模糊)浮点numpy数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29920114/

相关文章:

python - 在 Python 中使用 OpenCV 消除切向透视失真

python - 如何对pandas数据框中的复杂条件求和

c++ - 如何在opencv中使用UndistortPoints函数

python - 获取KernelRidge类scikit学习库的拟合模型参数

python - 在 numpy 中,[:, None] 的选择有什么作用?

python - 用 C 扩展 Python、numpy——代码还好吗?

python - 数组切片 : access first two elements in reverse order running for loop

c++ - 如何初始化包含opencv :matrices?的二维 vector

python - cygdb导入错误: No module named 'Cython'

python - 如何合并2个数组python(类似于SQL Join)