用python 写一段给图像添加条纹噪声的代码
时间: 2024-05-14 09:14:29 浏览: 301
以下是使用Python给图像添加条纹噪声的示例代码:
```python
import numpy as np
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 获取图像的高度和宽度
h, w = img.shape[:2]
# 生成条纹噪声
alpha = 20 # 条纹噪声的强度
stripe_noise = np.zeros((h, w), dtype=np.uint8)
for i in range(h):
for j in range(w):
stripe_noise[i, j] = 255 if np.sin(j/10) > 0 else 0
stripe_noise = cv2.GaussianBlur(stripe_noise, (3, 3), 0) # 模糊处理
# 将条纹噪声与图像叠加
noise_img = cv2.addWeighted(img, 1, cv2.cvtColor(stripe_noise, cv2.COLOR_GRAY2BGR), alpha/100, 0)
# 显示处理后的图像
cv2.imshow('image', noise_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们首先读取了一张图像,然后使用一个循环生成了条纹噪声。这个循环会遍历所有像素,根据像素在图像中的水平位置,决定该像素的噪声颜色(黑或白)。我们还使用了高斯模糊对噪声进行了平滑处理,以使其更加真实。
接下来,我们使用`addWeighted`函数将噪声图像与原始图像进行了叠加,生成了一张添加了条纹噪声的新图像。最后,我们使用`imshow`函数将处理后的图像显示出来。
您可以根据需要调整`alpha`参数以控制噪声的强度。此外,您还可以根据需要修改生成噪声的循环,以实现不同的噪声效果。
阅读全文