(1)从文件夹读入图像1,将图像1转成灰度图像2。给灰度图像2人为地加上高斯噪声得到带噪声的图像3,用邻域平均法对图像3进行去噪得到图像4。在同一个界面上分别显示图像1,图像2,图像3和图像4。的pytchon完整代码
时间: 2024-10-10 20:14:11 浏览: 15
在Python中,我们可以使用PIL(Python Imaging Library)来处理图像,NumPy进行数值计算,以及OpenCV库来进行噪声去除。以下是一个基本的示例代码,展示了如何完成这个过程:
```python
from PIL import Image
import numpy as np
import cv2
# 读取图像1
img1 = Image.open('path_to_image1.jpg')
# 转换为灰度图像2
gray_img2 = img1.convert('L')
# 添加高斯噪声到图像3
gaussian_noise = (0.5, 0.5) # 设置高斯噪声的标准差
noisy_img3 = gray_img2 + np.random.normal(loc=gaussian_noise[0], scale=gaussian_noise[1], size=gray_img2.size).astype(gray_img2.dtype)
# 使用OpenCV的双边滤波器进行去噪,得到图像4(这里我们假设双边滤波器作为邻域平均的一种替代)
blur_kernel_size = 5 # 可调整的滤波器大小
denoised_img4 = cv2.bilateralFilter(noisy_img3, blur_kernel_size, sigmaColor=90, sigmaSpace=75)
# 显示原始图像和处理后的图像
img1.show()
gray_img2.show()
noisy_img3.show()
cv2.imshow("Denoised Image", denoised_img4)
cv2.waitKey(0) # 等待用户按键关闭窗口
阅读全文