题目
利用MATLAB编程,制作一张照片,分别加入高斯噪音和椒盐噪音。然而利用均值滤波和中值滤波分别对上述两种噪音进行去噪。
原图
1、添加椒盐噪声
clear;clc; image = mat2gray(imread('D:/1.jpg'),[0 255]); noiseIsp = imnoise(image,'salt & pepper',0.1); % 添加椒盐噪声,密度为0.1 imshow(noiseIsp,[0 1]); title('椒盐噪声图像')
2、添加高斯噪声
clear;clc; image = mat2gray(imread('D:/1.jpg'),[0 255]); noiseIsp = imnoise(image,'gaussian',0.1); % 添加高斯噪声,默认值均为0,方差为0.01 imshow(noiseIsp,[0 1]); title('高斯噪声图像')
3、均值滤波处理椒盐噪声
clear;clc; image = mat2gray(imread('D:/1.jpg'),[0 255]); % 因为filter2是对二维图像的处理,所以需要将图片转换成灰度图像 image_new = rgb2gray(image); % 将图像转换成灰度图像 noiseIsp = imnoise(image_new,'salt & pepper',0.1); % 添加椒盐噪声,默认值均为0,方差为0.01 imshow(noiseIsp);title('添加了椒盐噪声的灰度图像'); result = filter2(fspecial('average',3),noiseIsp); % 3x3均值滤波 figure; imshow(result); title('3x3均值滤波图像');
4、中值滤波处理椒盐噪声
clear;clc; image = mat2gray(imread('D:/1.jpg'),[0 255]); % 因为medfil2是对二维图像的处理,所以需要将图片转换成灰度图像 image_new = rgb2gray(image); % 将图像转换成灰度图像 noiseIsp = imnoise(image_new,'salt & pepper',0.1); % 添加椒盐噪声,默认值均为0,方差为0.01 imshow(noiseIsp);title('添加了椒盐噪声的灰度图像'); result = medfilt2(noiseIsp); % 3x3中值滤波 figure; imshow(result); title('3x3中值滤波图像');
5、均值滤波处理高斯噪声
clear;clc; image = mat2gray(imread('D:/1.jpg'),[0 255]); % 因为fliter2是对二维图像的处理,所以需要将图片转换成灰度图像 image_new = rgb2gray(image); % 将图像转换成灰度图像 noiseIsp = imnoise(image_new,'gaussian',0.1); % 添加高斯噪声,默认值均为0,方差为0.01 imshow(noiseIsp);title('添加了高斯噪声的灰度图像'); result = filter2(fspecial('average',3),noiseIsp); % 3x3均值滤波 figure; imshow(result); title('3x3均值滤波');
6、中值滤波处理高斯噪声
clear;clc; image = mat2gray(imread('D:/1.jpg'),[0 255]); % 因为medfilt2是对二维图像的处理,所以需要将图片转换成灰度图像 image_new = rgb2gray(image); % 将图像转换成灰度图像 noiseIsp = imnoise(image_new,'gaussian',0.1); % 添加高斯噪声,默认值均为0,方差为0.01 imshow(noiseIsp);title('添加了高斯噪声的灰度图像'); result = medfilt2(noiseIsp); % 3x3中值滤波 figure; imshow(result); title('3x3中值滤波图像');