本文中的图片和代码可以在GitHub上获取:zhang0peter/image-denoising
先是原始图像,这是一张彩色的png图片:
1 加噪声
然后是图像的加噪声的代码:
import numpy as np
import imageio
def im2double(im):
info = np.iinfo(im.dtype)
return im.astype(np.double) / info.max
def write(im, filename):
img = np.copy(im)
img = img.squeeze()
if img.dtype == np.double:
#img = np.array(img*255, dtype=np.uint8)
img = img * np.iinfo(np.uint8).max
img = img.astype(np.uint8)
imageio.imwrite(filename, img)
samples = {
'A': 0.6}
for imgName, noiseRatio in samples.items():
Img = im2double(imageio.imread('{}.png'.format(imgName)))
Img[(Img == 0)] = 0.01
rows, cols, channels = Img.shape
noiseMask = np.ones