详解向图像加入高斯白噪声

记录一下如何向图像中添加高斯白噪声。0均值高斯分布。

通过skimage.util.random_noise添加噪声_aiyaheart的博客-CSDN博客_skimage.util.random_noise

详解向图像加入高斯白噪声_墨晓白的博客-CSDN博客_图片添加高斯白噪声

import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
from skimage import util
img = Image.open('img/example.jpg')
img = np.array(img)
noise_gs_img = util.random_noise(img,mode='gaussian')
noise_salt_img = util.random_noise(img,mode='salt')
noise_pepper_img = util.random_noise(img,mode='pepper')
noise_sp_img = util.random_noise(img,mode='s&p')
noise_speckle_img = util.random_noise(img,mode='speckle')
plt.subplot(2,3,1), plt.title('original')
plt.imshow(img)
plt.subplot(2,3,2),plt.title('gaussian')
plt.imshow(noise_gs_img)
plt.subplot(2,3,3), plt.title('salt')
plt.imshow(noise_salt_img)
plt.subplot(2,3,4), plt.title('pepper')
plt.imshow(noise_pepper_img)
plt.subplot(2,3,5),plt.title('s&p')
plt.imshow(noise_sp_img)
plt.subplot(2,3,6), plt.title('speckle')
plt.imshow(noise_speckle_img)
plt.show()

 运行结果图:

高斯白噪音:

import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
from skimage import util
img = Image.open('img/example.jpg')
img = np.array(img)
noise_gs_img = util.random_noise(img,mode='gaussian')
plt.subplot(1,2,1), plt.title('original')
plt.imshow(img)
plt.subplot(1,2,2),plt.title('gaussian')
plt.imshow(noise_gs_img)
plt.show()

 

添加噪音并保存

利用Image打开图片,(打开图片也可以使用cv2.imread()),

img的类型是<class 'PIL.JpegImagePlugin.JpegImageFile'>,不是ndarray类型,使用np.array()将img装换为ndarray类型,添加高斯白噪音。

保存的时候使用matplotlib.image.imsave('test1.jpg', noise_gs_img)进行保存。

我使用了cv.imwrite()不行,

plt.savefig(filename)可以但是把画布也保存了,不是我想要的结果。

import numpy as np
import cv2
import matplotlib
import matplotlib.pyplot as plt
from PIL import Image
from skimage import util


img = Image.open('test.jpg')
img = np.array(img)
#添加高斯白噪音
noise_gs_img=util.random_noise(img, mode='gaussian', seed=None,var=(30/255.0)**2)
#保存添加过噪音的图片
matplotlib.image.imsave('test1.jpg', noise_gs_img)

如何将Numpy数组保存为图像_追随梦想,实现梦想-CSDN博客_numpy保存图片

这个链接解决了我的问题。还是对numpy操作不行啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值