clc;
clear;
I=imread('flower_gray.jpg');
J=imnoise(I,'salt & pepper',0.02);
subplot(121),imshow(I),title('原始图像');
subplot(122),imshow(J),title('加入椒盐噪声的图像');
均值滤波:
clc;
clear;
I=imread('flower_gray.jpg');
J=imnoise(I,'salt& pepper',0.02);
subplot(221),imshow(J),title('噪声图像');
K1=filter2(fspecial('average',3),J)/255; %进行3*3模板的均值滤波
K2=filter2(fspecial('average',5),J)/255; %进行5*5模板的均值滤波
K3=filter2(fspecial('average',7),J)/255; %进行7*7模板的均值滤波
subplot(222),imshow(K1),title('3*3模板均值滤波');
subplot(223),imshow(K2),title('5*5模板均值滤波');
subplot(224),imshow(K3),title('7*7模板均值滤波');
示例:RGB图像的均值滤波去除噪声-1
clc;
clear;
I=imread('test_coder.jpg');
subplot(131),imshow(I),title('原图像');
J=imnoise(I,'salt & pepper',0.02);
subplot(132),imshow(J),title('噪声图像');
R_J = J(:,:,1);
G_J = J(:,:,2);
B_J = J(:,:,3);
K1=filter2(fspecial('average',3),R_J)/255;
K2=filter2(fspecial('average',3),G_J)/255;
K3=filter2(fspecial('average',3),B_J)/255;
K(:,:,1) = K1;
K(:,:,2) = K2;
K(:,:,3) = K3;
subplot(133),imshow(K),title('3*3模板均值滤波');
示例:RGB图像的均值滤波去除噪声-2
clc;
clear;
I=imread('test_coder.jpg');
subplot(221),imshow(I),title('原图像');
J=imnoise(I,'salt & pepper',0.02);
subplot(222),imshow(J),title('噪声图像');
K1=imfilter(J, fspecial('average',3));
subplot(223),imshow(K1),title('3*3模板均值滤波');
K2=imfilter(J, fspecial('average',5));
subplot(224),imshow(K2),title('5*5模板均值滤波');
4.1.2 非线性滤波
示例:中值滤波
clc;
clear;
I=imread('flower_gray.jpg');
J=imnoise(I,'salt & pepper',0.02);
subplot(221),imshow(J),title('噪声图像');
K1=medfilt2(J,[3 3]); %进行3*3模板的中值滤波
K2=medfilt2(J,[5 5]); %进行5*5模板的中值滤波
K3=medfilt2(J,[7 7]); %进行7*7模板的中值滤波
subplot(222),imshow(K1),title('3*3模板中值滤波');
subplot(223),imshow(K2),title('5*5模板中值滤波');
subplot(224),imshow(K3),title('7*7模板中值滤波');
4.2 图像锐化
示例:Laplacian 算子图像锐化
clc;
clear;
I=imread('flower_gray.jpg');
h=fspecial('laplacian');
I2=filter2(h,I);
subplot(121),imshow(I),title('原始图像');
subplot(122),imshow(I2),title('滤波后图像');
示例:用sobel算子、prewitt算子、log算子对图像滤波
clc;
clear;
I=imread('flower_gray.jpg');
subplot(221),imshow(I),title('原始图像');
h1=fspecial('sobel');
I1=filter2(h1,I);
subplot(222),imshow(I1),title('sobel算子滤波');
h1=fspecial('prewitt');
I1=filter2(h1,I);
subplot(223),imshow(I1),title('prewitt算子滤波');
h1=fspecial('log');
I1=filter2(h1,I);
subplot(224),imshow(I1),title('log算子滤波');