在Python中,如何定义椒盐噪声,代码
时间: 2024-12-17 11:36:53 浏览: 30
在Python中,椒盐噪声是一种常见的图像处理噪声模型,它会在图像中随机地将像素值置为0(黑点)或原始值(正常像素)。下面是一个简单的例子,展示如何使用PIL库来添加椒盐噪声:
```python
from PIL import Image, ImageFilter
def add_salt_and_pepper_noise(image_path, salt_rate=0.05, pepper_rate=0.05):
# 加载图片
image = Image.open(image_path)
# 创建噪声矩阵
noise_matrix = Image.new('1', image.size, '1') # '1'表示二进制图像,白色背景
salt_mask = Image.new('1', image.size, '0')
pepper_mask = Image.new('1', image.size, '0')
for x in range(image.width):
for y in range(image.height):
if random.random() < salt_rate:
salt_mask.putpixel((x, y), 1)
elif random.random() < pepper_rate:
pepper_mask.putpixel((x, y), 1)
# 合并噪声
noisy_image = Image.composite(image, salt_mask, salt_mask) | Image.composite(image, pepper_mask, pepper_mask)
return noisy_image
# 使用函数添加噪声
noisy_img = add_salt_and_pepper_noise('input.jpg', 0.1, 0.1)
noisy_img.show()
```
在这个例子中,`salt_rate`和`pepper_rate`分别指代盐噪声(黑点)和椒噪声(白点)的比例。每个像素有5%的概率变成盐噪声或椒噪声。
阅读全文