编写代码,实现对skimage.data中的彩色图像astronaut.png的灰度化,并实现对灰度图像的反锐化掩蔽处理(用5×5的盒状滤波模板)
时间: 2024-02-17 10:00:01 浏览: 65
好的,以下是实现对astronaut.png的灰度化,并实现对灰度图像的反锐化掩蔽处理的Python代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from skimage import data, color
from skimage.filters import unsharp_mask
from skimage.morphology import square
from scipy import signal
# 读取彩色图像并转换为灰度图像
img = color.rgb2gray(data.astronaut())
# 定义5×5的盒状滤波模板
kernel = np.ones((5, 5)) / 25
# 对灰度图像进行盒状滤波
img_box = signal.convolve2d(img, kernel, mode='same', boundary='symm')
# 反锐化掩蔽处理
img_unsharp = unsharp_mask(img, radius=1, amount=1)
# 显示原图、盒状滤波处理结果和反锐化掩蔽处理结果
fig, axes = plt.subplots(ncols=3, figsize=(10, 5))
ax = axes.ravel()
ax[0].imshow(img, cmap='gray')
ax[0].set_title('Original image')
ax[1].imshow(img_box, cmap='gray')
ax[1].set_title('Box filtered image')
ax[2].imshow(img_unsharp, cmap='gray')
ax[2].set_title('Unsharp mask filtered image')
fig.tight_layout()
plt.show()
```
运行上述代码,就可以得到对astronaut.png的灰度化,并实现对灰度图像的反锐化掩蔽处理的结果。其中,左侧是原图,中间是盒状滤波处理结果,右侧是反锐化掩蔽处理结果。
阅读全文