使用【python】写首先对图像添加椒盐噪声或高斯噪声,然后对加噪图像进行均值滤波、中值滤波和高斯滤波的代码
时间: 2024-10-19 08:14:08 浏览: 71
在Python中,我们可以使用PIL库处理图像,NumPy库进行数学运算,以及OpenCV库提供更多的图像处理功能。以下是使用这些库实现图像加噪、滤波的基本步骤:
首先,安装所需的库(如果尚未安装):
```bash
pip install pillow numpy opencv-python
```
接下来是一个简单的例子,演示了如何对图像添加椒盐噪声和高斯噪声,然后分别应用均值滤波、中值滤波和高斯滤波:
```python
import cv2
import numpy as np
from PIL import Image
# 加载图像
img = cv2.imread('your_image.jpg', cv2.IMREAD_GRAYSCALE)
# 添加椒盐噪声(salt and pepper noise)
def add_salt_pepper_noise(image, p=0.05):
noisy = image.copy()
s_vs_p = 1 - p
amount = int(p * len(noisy.flat))
# Salt模式
indices = np.random.choice(len(noisy.ravel()), amount, replace=True)
noisy[indices] = 255
# Pepper模式
indices = np.random.choice(len(noisy.ravel()), amount, replace=True)
noisy[indices] = 0
return noisy
noisy_img = add_salt_pepper_noise(img)
# 添加高斯噪声(Gaussian noise)
sigma = 10 # 高斯噪声的标准差
gaussian_noisy = img + np.random.normal(0, sigma, img.shape)
# 图像滤波操作
kernel_size = 5 # 滤波器大小
mean_filtered = cv2.blur(gaussian_noisy, (kernel_size, kernel_size)) # 均值滤波
median_filtered = cv2.medianBlur(gaussian_noisy, kernel_size) # 中值滤波
gaussian_filtered = cv2.GaussianBlur(gaussian_noisy, (kernel_size, kernel_size), sigmaX=sigma) # 高斯滤波
# 保存结果
cv2.imwrite('noisy_img.png', noisy_img)
cv2.imwrite('mean_filtered.png', mean_filtered)
cv2.imwrite('median_filtered.png', median_filtered)
cv2.imwrite('gaussian_filtered.png', gaussian_filtered)
```
在这个例子中,你需要替换 `'your_image.jpg'` 为你要处理的实际图像路径。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)