不用opencv库用python编写高斯滤波平滑图像代码
时间: 2023-05-20 22:04:02 浏览: 127
以下是使用Python编写高斯滤波平滑图像的代码,不需要使用OpenCV库:
```python
import numpy as np
from scipy import signal
def gaussian_kernel(size, sigma):
x, y = np.meshgrid(np.linspace(-1,1,size), np.linspace(-1,1,size))
d = np.sqrt(x*x+y*y)
kernel = np.exp(-(d**2 / (2.0*sigma**2)))
return kernel / np.sum(kernel)
def gaussian_filter(image, kernel_size, sigma):
kernel = gaussian_kernel(kernel_size, sigma)
filtered_image = signal.convolve2d(image, kernel, mode='same', boundary='symm')
return filtered_image
```
其中,`gaussian_kernel`函数用于生成高斯核,`gaussian_filter`函数用于对图像进行高斯滤波。`size`参数表示高斯核的大小,`sigma`参数表示高斯核的标准差。`signal.convolve2d`函数用于进行卷积操作,`mode='same'`表示输出与输入大小相同,`boundary='symm'`表示使用对称边界处理边缘像素。
阅读全文