椒盐噪声的实现原理为,随机地将图像中的一定比例的像素值取极大或者极小:

这里给出 Python 下的一种实现,可简单地转换为其他:

def salt_and_pepper_noise(x, v):
    # x 表示原始无噪图像,行数表示图像的个数,列数表示单幅图像的像素数。
    x_noise = x.copy()
    n_features = x.shape[1]
    mn = x.min()
    mx = x.max()
    for i, sample in enumerate(x):
        mask = np.random.randint(0, n_features, v)
        for m in mask:
            if np.random.rand() < .5:
                x[i][m] = mn
            else:
                x[i][m] = mx
    return x_noise
posted on 2017-03-26 21:15  未雨愁眸  阅读(211)  评论(0编辑  收藏  举报