(1)从文件夹读入图像1,将图像1转成灰度图像2。给灰度图像2人为地加上高斯噪声得到带噪声的图像3,用邻域平均法对图像3进行去噪得到图像4。在同一个界面上分别显示图像1,图像2,图像3和图像4。pytchon完整代码
时间: 2024-10-10 10:13:26 浏览: 27
在Python中,你可以使用`PIL`库(Python Imaging Library)读取图像,`skimage`库处理图像转换和噪声添加,以及`matplotlib`库显示图像。下面是一个简单的示例代码:
```python
from PIL import Image
import numpy as np
from skimage.util import random_noise
from skimage.restoration import denoise_bilateral
import matplotlib.pyplot as plt
# 1. 从文件夹读取图像
img1 = Image.open('path_to_your_image1.jpg') # 替换 'path_to_your_image1.jpg' 为实际图片路径
# 将图像转换为灰度
gray_img2 = img1.convert('L')
# 2. 加上高斯噪声
sigma = 0.1 # 高斯噪声的方差
noisy_img3 = random_noise(gray_img2, var=sigma**2)
# 3. 去噪
denoised_img4 = denoise_bilateral(noisy_img3, sigma_color=50, sigma_spatial=5) # 调整sigma_color和sigma_spatial以适应需求
# 显示原始、灰度、带噪声和去噪后的图像
fig, axs = plt.subplots(nrows=2, ncols=2)
axs[0, 0].imshow(img1, cmap='gray')
axs[0, 0].set_title('Original Image 1')
axs[0, 1].imshow(gray_img2, cmap='gray')
axs[0, 1].set_title('Grayscale Image 2')
axs[1, 0].imshow(noisy_img3, cmap='gray', interpolation='nearest')
axs[1, 0].set_title('Noisy Image 3')
axs[1, 1].imshow(denoised_img4, cmap='gray', interpolation='nearest')
axs[1, 1].set_title('Denoised Image 4')
for ax in axs.flat:
ax.set(xticks=[], yticks=[])
plt.show()
```
记得替换 `'path_to_your_image1.jpg'` 为实际的图像文件路径,并根据需要调整噪声添加的参数。
阅读全文