python给图像添加乘性噪声
时间: 2023-07-08 17:13:15 浏览: 218
可以使用Python的OpenCV库来给图像添加乘性噪声。下面是一个简单的示例代码:
```python
import cv2
import numpy as np
img = cv2.imread('image.jpg')
# 生成一个与图像大小相同的随机数矩阵
noise = np.random.rand(*img.shape)
# 将噪声矩阵乘以一个系数,控制噪声强度
noise_factor = 0.1
noise = noise * noise_factor
# 将噪声加到图像中
noisy_img = img * noise
# 将数据类型转换回uint8
noisy_img = np.uint8(noisy_img)
# 显示加噪声后的图像
cv2.imshow('Noisy Image', noisy_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们使用`np.random.rand()`函数生成一个与原始图像大小相同的随机数矩阵,然后将其乘以一个系数`noise_factor`来控制噪声的强度。最后,将噪声矩阵乘以原始图像,得到加噪声后的图像。
相关问题
python给图像添加45度噪声
您可以使用 Pillow 库中的 Image 模块和 NumPy 库来实现给图像添加45度噪声的效果。以下是一个基本的代码示例:
```python
from PIL import Image
import numpy as np
# 打开图像
image = Image.open("image.jpg")
# 转换为 NumPy 数组
# 注意:这里需要将 'L' 参数改为相应的模式,比如 'RGB' 或 'RGBA'
array = np.array(image.convert('L'))
# 高斯噪声函数
def add_noise(x):
return x + np.random.normal(scale=10)
# 对每个像素施加 45 度旋转并添加噪声
rotated_array = np.rot90(array, k=1)
noisy_array = np.apply_along_axis(add_noise, 1, rotated_array)
# 旋转回去并转换为图像
result_array = np.rot90(noisy_array, k=-1)
result_image = Image.fromarray(result_array.astype('uint8'))
# 保存结果
result_image.save("result.jpg")
```
需要注意的是,这只是一个简单的示例代码,您可能需要调整一些参数来适应不同的场景和需求。
python给图像添加泊松噪声
可以使用Python的OpenCV库来给图像添加泊松噪声。下面是一个简单的示例代码:
```python
import cv2
import numpy as np
img = cv2.imread('image.jpg')
# 生成泊松噪声
noise = np.random.poisson(img / 255.0 * 10) / 10.0 * 255
# 将噪声加到图像中
noisy_img = cv2.add(img, noise)
# 显示加噪声后的图像
cv2.imshow('Noisy Image', noisy_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们首先将原始图像除以255,然后乘以一个常数10来生成泊松噪声。我们也可以通过调整这个常数来控制噪声的强度。然后,将噪声矩阵加到原始图像中,得到加噪声后的图像。