添加椒盐噪声/高斯噪声实验
使用opencv+python
一、实验思路
椒盐噪声(脉冲噪声),在一幅图像里随机的将一个像素点变成椒盐噪声,其中椒噪声像素值是0,盐噪声是255。
生成(添加)椒盐噪声算法步骤如下:
(1)输入一幅图像并自定义信噪比 SNR (其取值范围在[0, 1]之间);
(2)计算图像像素点个数 SP, 进而得到椒盐噪声的像素点数目 NP = SP * (1-SNR);
(3)随机获取要加噪的每个像素位置img[i, j];
(4)随机生成[0,1]之间的一个浮点数;
(5)判定浮点数是否大于0.5,并指定像素值为255或者0;
(6)重复3,4,5三个步骤完成所有像素的NP个像素加粗样式;
(7)输出加噪以后的图像。
高斯噪声,指的是他的概率密度函数服从高斯分布(正态分布)的一类噪声,计算过程与椒盐噪声类似。
二、实验代码
import cv2 as cv
import numpy as np
# 将rgb颜色通道的图像转为灰色
def rgb2gray(img):
h=img.shape[0]
w=img.shape[1]
img1=np.zeros((h,w),np.uint8)
for i in range(h):
for j in range(w):
# 变成灰色的公式
img1[i,j]=0.144*img[i,j,0]+0.587*img[i,j,1]+0