相关疑难解决方法(0)

对于 PIL.ImageFilter.GaussianBlur 如何使用内核以及半径参数与标准偏差有关吗?

使用 PIL 读取图像后,我通常使用 scipy.ndimage 执行高斯滤波器,如下所示

import PIL
from scipy import ndimage

PIL_image = PIL.Image.open(filename)
data = PIL_image.getdata()
array = np.array(list(data)).reshape(data.size[::-1]+(-1,))
img = array.astype(float)
fimg = ndimage.gaussian_filter(img, sigma=sigma, mode='mirror', order=0)
Run Code Online (Sandbox Code Playgroud)

PIL 中有如下高斯模糊函数(来自这个答案),但我不知道它究竟是如何工作的,也不知道它使用的是什么内核:

from PIL import ImageFilter
fimgPIL = PIL_image.filter(ImageFilter.GaussianBlur(radius=r)
Run Code Online (Sandbox Code Playgroud)

本文档不提供详细信息

关于的问题PIL.ImageFilter.GaussianBlur

  1. 半径参数到底是什么;是等价于标准差吗??
  2. 对于给定的半径,它计算内核有多远?2?? 3?? 6??

Gaussian Blur - 标准偏差、半径和内核大小的回答的评论如下,但我还没有找到 PIL 的信息。

OpenCV使用内核半径,(sigma * 3)scipy.ndimage.gaussian_filter使用内核半径 int(4 * sigma + 0.5)

python python-imaging-library python-3.x

4
推荐指数
1
解决办法
1287
查看次数