实验内容及实验原理:
1.用均值滤波器(即邻域平均法)去除图像中的噪声;
2.用中值滤波器去除图像中的噪声
3.比较两种方法的处理结果
实验步骤:
用原始图像lena.bmp或cameraman.bmp加产生的3%椒盐噪声图像合成一幅有噪声的图像并显示;
1.用均值滤波器去除图像中的噪声(选3x3窗口):以当前像素点为中心,求窗口内所有灰度值的和,以其平均值作为中心像素新的灰度值
2. 用中值滤波器去除图像中的噪声(选3x3窗口做中值滤波);以当前像素点为中心,求窗口中所有像素点的灰度值的中值,以中值作为中心像素点的值
3.将两种处理方法的结果与原图比较,注意两种处理方法对边缘的影响。
添加椒盐噪声
以3%的几率产生随机为0/255的灰度值覆盖原来的灰度值
for (int i = 0; i <src->height; i++){
for (int j = 0; j <src->width; j++){
CvScalar s = cvGet2D(src, i,j);
srand(seed++);
if (rand() % 100 <3){//3%的几率覆盖
srand(seed++);
s.val[0]= rand() % 2 * 255;//随机是0还是255
}
cvSet2D(dst,i, j, s);
}
}
添加后:
均值滤波
计算当前像素周围的九个像素点的灰度值和,以其平均值作为当前像素的灰度值。如果是边缘的像素点就求有限的几个像素灰度值的平均值
for (int i = 0;i < dst->height; i++){
for (int j = 0; j < dst->width