matplotlib实现均值滤波和中值滤波,拉普拉斯算子
时间: 2023-10-17 18:13:04 浏览: 178
均值滤波、中值滤波的matlab实现
均值滤波和中值滤波是图像处理中常用的滤波算法。拉普拉斯算子则是图像锐化的一种方法。下面是用matplotlib实现这些算法的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
from skimage import data, filters
# 读取图像
image = data.coins()
# 均值滤波
blur = filters.mean(image)
# 中值滤波
med = filters.median(image)
# 拉普拉斯算子
lap = filters.laplace(image)
# 绘制结果
fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(8, 8))
ax = axes.ravel()
ax[0].imshow(image, cmap=plt.cm.gray)
ax[0].set_title('Original')
ax[1].imshow(blur, cmap=plt.cm.gray)
ax[1].set_title('Mean')
ax[2].imshow(med, cmap=plt.cm.gray)
ax[2].set_title('Median')
ax[3].imshow(lap, cmap=plt.cm.gray)
ax[3].set_title('Laplace')
for a in ax:
a.axis('off')
plt.tight_layout()
plt.show()
```
上述代码使用skimage中的data模块读取了一张硬币图像,然后分别进行了均值滤波、中值滤波和拉普拉斯算子的处理,并将结果绘制在一个4个子图的窗口中。可以看到,均值滤波和中值滤波都使图像变得模糊,而拉普拉斯算子则增强了图像的边缘。
阅读全文