我有一个 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/