subplot(234),imshow(k2);title('5*5 模板平滑滤波');
subplot(235),imshow(k3);title('7*7 模板平滑滤波');
subplot(236),imshow(k4);title('9*9 模板平滑滤波');
6.中值滤波器
用 MATLAB 实现中值滤波程序如下:
I=imread('xian.bmp');
I=rgb2gray(I);
J=imnoise(I,'salt&pepper',0.02);
subplot(231),imshow(I);title('原图像');
subplot(232),imshow(J);title('添加椒盐噪声图像');
k1=medfilt2(J);!!!!!!!!!!! %进行 3*3 模板中值滤波
k2=medfilt2(J,[5,5]);!!!!! %进行 5*5 模板中值滤波
k3=medfilt2(J,[7,7]);!!!!! %进行 7*7 模板中值滤波
k4=medfilt2(J,[9,9]);!!!!! %进行 9*9 模板中值滤波
subplot(233),imshow(k1);title('3*3 模板中值滤波');
subplot(234),imshow(k2);title('5*5 模板中值滤波');
subplot(235),imshow(k3);title('7*7 模板中值滤波');
subplot(236),imshow(k4);title('9*9 模板中值滤波');
7.用 Sobel 算子和拉普拉斯对图像锐化:
I=imread('xian.bmp');
subplot(2,2,1),imshow(I);
title('原始图像');
axis([50,250,50,200]);
grid on;!!!!!!!!!!!!!!!!! %显示网格线
axis on;!!!!!!!!!!!!!!!!! %显示坐标系
I1=im2bw(I);
subplot(2,2,2),imshow(I1);
title('二值图像');
axis([50,250,50,200]);
grid on;!!!!!!!!!!!!!!!!! %显示网格线
axis on;!!!!!!!!!!!!!!!!! %显示坐标系
H=fspecial('sobel');!!!! %选择 sobel 算子L
J=filter2(H,I1);!!!!!!!!!!! %卷积运算
subplot(2,2,3),imshow(J);!
title('sobel 算子锐化图像');
axis([50,250,50,200]);
grid on;!!!!!!!!!!!!!!!!! %显示网格线
axis on;!!!!!!!!!!!!!!!!! %显示坐标系
h=[0 1 0,1 -4 1,0 1 0];!! %拉普拉斯算子
J1=conv2(I1,h,'same');!!!!!!!!!!! %卷积运算
subplot(2,2,4),imshow(J1);!
title('拉普拉斯算子锐化图像');