对图像bala.bmp添加随机噪声并保存,对保存后的图像进行均值滤波中值滤波和高斯滤波并比较说明不同效果的python代码
时间: 2024-09-24 10:05:48 浏览: 40
论文研究 - 伊朗中部Pasab-e-Bala地区使用匹配滤波和光谱类似技术从OLI和ASTER多光谱数据进行岩性制图
在Python中,我们可以使用PIL库处理图像,并通过NumPy库生成随机噪声。这里是一个简单的示例,展示如何操作:
```python
from PIL import Image
import numpy as np
import cv2
# 加载图像
img = Image.open('bala.bmp')
width, height = img.size
img_array = np.array(img)
# 添加随机噪声 (这里使用高斯噪声作为例子)
noise_level = 0.1 # 设置噪声强度
random_noise = np.random.normal(0, noise_level, img_array.shape).astype(np.uint8) * 255 # 高斯噪声
noisy_img = img_array + random_noise
# 保存添加噪声后的图像
noisy_img.save('noisy_bala.bmp')
# 进行滤波
# 均值滤波
blurred_mean = cv2.blur(noisy_img, (3, 3))
mean_filtered_img = Image.fromarray(blurred_mean)
# 中值滤波
blurred_median = cv2.medianBlur(noisy_img, 3)
median_filtered_img = Image.fromarray(blurred_median)
# 高斯滤波
blurred_gaussian = cv2.GaussianBlur(noisy_img, (5, 5), 0)
gaussian_filtered_img = Image.fromarray(blurred_gaussian)
# 保存滤波后的图像
mean_filtered_img.save('mean_filtered_bala.bmp')
median_filtered_img.save('median_filtered_bala.bmp')
gaussian_filtered_img.save('gaussian_filtered_bala.bmp')
# 比较效果:
阅读全文