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

我试过了

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/

10-12 18:21
查看更多