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