添加不同大小的speckle噪声,代码展示
时间: 2023-06-09 09:06:32 浏览: 78
以下是添加不同大小的speckle噪声的Python代码示例:
```
import numpy as np
import cv2
# 读取原始图像
img = cv2.imread('image.jpg', 0)
# 添加不同大小的speckle噪声
# 高斯噪声
gauss = np.random.normal(0, 1, img.shape)
gauss = gauss.reshape(img.shape[0], img.shape[1]).astype('float32')
img_gauss = img + img * gauss
# salt-and-pepper噪声
s_vs_p = 0.5
amount = 0.004
sp_img = img.copy()
# 加盐噪声
num_salt = np.ceil(amount * img.size * s_vs_p)
coords = [np.random.randint(0, i-1, int(num_salt))
for i in img.shape]
sp_img[coords] = 255
# 加椒噪声
num_pepper = np.ceil(amount * img.size * (1. - s_vs_p))
coords = [np.random.randint(0, i-1, int(num_pepper))
for i in img.shape]
sp_img[coords] = 0
# 显示原始图像和添加噪声后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Gaussian Noise Image', img_gauss.astype('uint8'))
cv2.imshow('Salt-and-Pepper Noise Image', sp_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
该代码使用numpy和OpenCV库生成随机数来添加高斯噪声和salt-and-pepper噪声,最后使用OpenCV库显示原始图像和添加噪声后的图像。