实验名称
数字图像的空间域滤波
实验类实验学
验证性 型 时
4
1、 理解图像空间域滤波的原理;
实验目的
2、 掌握图像均值滤波、中值滤波的
原理与实现方法;
3、 掌握上述方法的改进方法。
知识点和涉及
图像的空间域滤波、图像的平滑、
的相关图像的锐化。 知识
基本要求:
1、 自己编程实现图像的均值滤波; 2、 自己编程实现图像的中值滤波;
实验内容
3、 利用matlab图像处理工具箱中 的函数实现图像的上述处理; 扩展要求:
4、 实现一种图像加权中值滤波或加权均值滤波;
%均值滤波: clear; close all;
I2=imread('d:\\lenna.jpg';I1= rgb2gray(I2; I=double(I1 [p,q]=size(I;A=I; n=3;a(1:n,1:n=1; for i=1:p-n+1 for j=1:q-n+1 c=I(i:i+n-1,j:j+n-1.*a; s=sum(sum(c;
A(i+(n-1/2,j+(n-1/2=s/(n*n; end end; b=uint8(A;
imshow(I1;figure,imshow(b; %中值滤波 clear; close all;
I2=imread('d:\\lenna.jpg';;I1= rgb2gray(I2;I=double(I1 [p,q]=size(I;A=I; n=3;a(1:n,1:n=1; for i=1:p-n+1 for j=1:q-n+1 c=I(i:i+n-1,j:j+n-1.*a; e=c(1,:; %c矩阵的第一行 for u=2:n
e=[e,c(u,:]; %转换为行矩阵 end
mm=median(e; %中值 A(i+(n-1/2,j+(n-1/2=mm; end end; b=uint8(A;
figure,imshow(I1;figure,imshow(b; %调用函数进行滤波 A1=fspecial('average',n; x11=filter2(A1,I; xa=uint8(x11; y11= medfilt2(I,[n n]; ya=uint8(y11;
figure,imshow(xa;figure,imshow(ya;;
改变模板的值,就可以实现加权滤波,将n*n矩阵从全1改为[1 2 1;3 2 3;1 2 1] %中值滤波 clear; close all;
I2=imread('d:\\lenna.jpg';;I1= rgb2gray(I2;I=double(I1 [p,q]=size(I;A=I;
n=3;a(1:n,1:n=[1 2 1;2 3 2;1 2 1]; %通过模板加强某些点的强度 for i=1:p-n+1 for j=1:q-n+1 c=I(i:i+n-1,j:j+n-1.*a; e=c(1,:; %c矩阵的第一行 for u=2:n
e=[e,c(u,:]; %转换为行矩阵 end
mm=median(e; %中值 A(i+(n-1/2,j+(n-1/2=mm; end end; b=uint8(A;
figure,imshow(I1;figure,imshow(b; 1,均值滤波前后:
2.中值滤波前后
3.调用函数进行滤波 A,均值滤波后
B,中值滤波后
加权滤波前后:
因篇幅问题不能全部显示,请点此查看更多更全内容