实验三
1、采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波,窗口分别采用3 * 3,5 * 5,7 * 7
close all;
clear all;
clc;
i=imread('图像平滑.png');
i=rgb2gray(i);
j=imnoise(i,'salt & pepper',0.04); %模拟叠加密度为0.04的椒盐噪声
k1=medfilt2(j,[3 3]);%对矩阵i进行二维中值滤波,领域3*3
k2=medfilt2(j,[5 5]);
k3=medfilt2(j,[7 7]);
subplot(2,2,1);imshow(j);title('原图像');
subplot(2,2,2);imshow(k1);;title('3 3');
subplot(2,2,3);imshow(k2);title('5 5');
subplot(2,2,4);imshow(k3);title('7 7');
2、采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波
close all;
clear all;
clc;
i=imread('图像平滑.png');
i=rgb2gray(i);
j=imnoise(i,'salt & pepper',0.04); %模拟叠加密度为0.04的椒盐噪声
k1=filter2(fspecial('average',9),j)/255;
subplot(2,2,1);imshow(j);title('噪声干扰图像');
subplot(2,2,2);imshow(k1);;title('改进后的图像');
3、采用三种不同算子对图像进行锐化处理
close all;
clear all;
clc;
i=imread('图像平滑.png');
i=rgb2gray(i);
j=fspecial('sobel');%应用Sobel算子
k1=filter2(j,i);%Sobel算子滤波锐化
j=fspecial('prewitt');%应用prewitt算子
k2=filter2(j,i);%prewitt算子滤波锐化
j=fspecial('log');%应用log算子
k3=filter2(j,i);%log算子滤波锐化
subplot(2,2,1);imshow(i);title('原图像');
subplot(2,2,2);imshow(k1);;title('Sobel算子锐化图像');
subplot(2,2,3);imshow(k2);title('prewitt算子锐化图像');
subplot(2,2,4);imshow(k3);title('log算子锐化图像');
4.总结
4.1比较不同平滑滤波器的处理效果,分析其优缺点
中值滤波器对去除椒盐噪声可以起很好的效果,因为椒盐噪声在画面中的部分点上随机出现.所以根据中值滤波可知,通过数据排列的方法,将图像中未被噪声污染的点代替噪声点的值的概率比较大,因此噪声的抑制效果好.均值滤波器对图像处理能达到去噪的效果,并且滤波器的模板越大去噪效果越好,但模板选择过大时,处理的效果会下降.二者相比,中值滤波去图像椒盐噪声的同时,还能保持图像清晰的轮廓.
4.2比较不同锐化滤波器的处理效果,分析其优缺
Sobel算子是滤波算子的形式来提取边缘,X,Y方向各用一个模板,两个模板组合起来构成一个梯度算子。X方向模板对垂直边缘影响最大,Y方向模板对水平边缘影响最大。prewitt算子是加权平均算子,对噪声有抑制作用,但是像素平均相当于对图像进行的同滤波.log算法的特点是由于先进行了高斯滤波,因而可以一定程度上克服噪声的影响。但可能产生假边缘,对一些曲线边缘(curved edges)的定位误差较大
|