实验三 图像的滤波及增强
一、 实验目的
1进一步了解MatLab 软件/语言,学会使用MatLab 对图像作滤波处理,使学生有机会掌握滤波算法,体会滤波效果。
2了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。
3 熟悉傅立叶变换的基本性质;
4 熟练掌握FFT 变换方法及应用;
二、实验要求
(1)学生应当完成对于给定图像+噪声,使用平均滤波器、中值滤波器对不同强度的高斯噪声和椒盐噪声,进行滤波处理;能够正确地评价处理的结果;能够从理论上作出合理的解释。
(2)利用MATLAB 软件实现空域滤波的程序:
I=imread('electric.tif');
J = imnoise(I,'gauss',0.02); %添加高斯噪声
J = imnoise(I,'salt & pepper',0.02); (注意空格) %添加椒盐噪声
ave1=fspecial('average',3); %产生3×3的均值模版
ave2=fspecial('average',5); %产生5×5的均值模版
K = filter2(ave1,J)/255; %均值滤波3×3
L = filter2(ave2,J)/255; %均值滤波5×5
M = medfilt2(J,[3 3]); %中值滤波3×3模板
N = medfilt2(J,[4 4]); %中值滤波4×4模板
imshow(I);
figure,imshow(J);
figure,imshow(K);
figure,imshow(L);
figure,imshow(M);
figure,imshow(N);
(3) 应用傅立叶变换进行图像处理
傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
(4) 傅立叶(Fourier )变换的定义
对于二维信号,二维Fourier 变换定义为:
∞∞
F (u , v ) =
逆变换: -∞-∞⎰⎰f (x , y ) e -j 2π(ux +uy ) dxdy
∞∞
f (x , y ) =
二维离散傅立叶变换为: -∞-∞⎰⎰F (u , v ) e j 2π(ux +uy ) dudv
i k -j 2π(m +n ) 1N -1N -1
N N F (m , n ) =∑∑f (i , k ) e N i =0k =0
逆变换:
1f (i , k ) =N m =0n =0∑∑F (m , n ) e N -1N -1j 2π(m i k +n ) N N
图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。
(5)利用MA TLAB 软件实现数字图像傅立叶变换的程序:
I=imread(‘原图像名.gif’); %读入原图像文件
imshow(I); %显示原图像
fftI=fft2(I); %二维离散傅立叶变换
sfftI=fftshift(fftI); %直流分量移到频谱中心
RR=real(sfftI); %取傅立叶变换的实部
II=imag(sfftI); %取傅立叶变换的虚部
A=sqrt(RR.^2+II.^2); %计算频谱幅值
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225 %归一化
figure; %设定窗口
imshow(A); %显示原图像的频谱
三、实验设备与软件
(1) IBM-PC计算机系统
(2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox)
(3) 实验所需要的图片
四、实验内容与步骤
1)模板滤波
a) 调入并显示原始图像Sample2-1.jpg 。
b) 利用imnoise 命令在图像Sample2-1.jpg 上加入高斯(gaussian) 噪声
c) 利用预定义函数fspecial 命令产生平均(average)滤波器
⎡-1-1-1⎤⎢-19-1⎥⎢⎥⎢-1-1-1⎥⎦ ⎣
d )分别采用3x3和5x5的模板,分别用平均滤波器以及中值滤波器,对加入噪声的图像进行处理并观察不同噪声水平下,上述滤波器处理的结果;
e )选择不同大小的模板,对加入某一固定噪声水平噪声的图像进行处理,观察上述滤波器处理的结果。
f )利用imnoise 命令在图像Sample2-1.jpg 上加入椒盐噪声(salt & pepper)
g )重复c)~ e)的步骤
h )输出全部结果并进行讨论。
2)频域滤波
1.将图像内容读入内存;
2.用Fourier 变换算法,对图像作二维Fourier 变换;
3.将其幅度谱进行搬移,在图像中心显示;
4.用Fourier 系数的幅度进行Fourier 反变换;
5.用Fourier 系数的相位进行Fourier 反变换;
6.比较4、5的结果,评价人眼对图像幅频特性和相频特性的敏感度。
7.记录和整理实验报告。
五、思考题/问答题
(1) 简述高斯噪声和椒盐噪声的特点。
(2) 结合实验内容,定性评价平均滤波器/中值滤波器对高斯噪声和椒盐噪声的去噪效果?
(3) 结合实验内容,定性评价滤波窗口对去噪效果的影响?
六、实验报告要求
描述实验的基本步骤,用数据和图片给出各个步骤中取得的实验结果,并进行必要的讨论,必须包括原始图像及其计算/处理后的图像。
2) 利用MATLAB 软件实现空域滤波的程序:
I=imread('moon.tif' );
J = imnoise(I,'gauss' ,0.02);
J = imnoise(I,'salt & pepper',0.02);
ave1=fspecial('average' ,3);
ave2=fspecial('average' ,5);
K = filter2(ave1,J)/255;
L = filter2(ave2,J)/255;
M = medfilt2(J,[3 3]);
N = medfilt2(J,[4 4]);
imshow(I);
figure,imshow(J);
figure,imshow(K);
figure,imshow(L);
figure,imshow(M);
利用MATLAB 软件实现数字图像傅立叶变换的程序:
I=imread('moon.tif' );
imshow(I);
fftI=fft2(I);
sfftI=fftshift(fftI);
RR=real(sfftI);
II=imag(sfftI);
A=sqrt(RR.^2+II.^2);
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225 ¯
figure;
imshow(A);
实验心得:
在这次实验中学会了用MATLAB 对图像进行滤波的处理,了解到滤波的集中不同方式。运用傅里叶变换的性质和变换方法及其应用,以数学的只是为前提,在MATLAB 中完成图像的处理,在明白滤波原理的基础上分析程序算法,需要认真的分析在不足的地方增加算法语句,同时注重和同学的交流,更好的完成实验。
实验三 图像的滤波及增强
一、 实验目的
1进一步了解MatLab 软件/语言,学会使用MatLab 对图像作滤波处理,使学生有机会掌握滤波算法,体会滤波效果。
2了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。
3 熟悉傅立叶变换的基本性质;
4 熟练掌握FFT 变换方法及应用;
二、实验要求
(1)学生应当完成对于给定图像+噪声,使用平均滤波器、中值滤波器对不同强度的高斯噪声和椒盐噪声,进行滤波处理;能够正确地评价处理的结果;能够从理论上作出合理的解释。
(2)利用MATLAB 软件实现空域滤波的程序:
I=imread('electric.tif');
J = imnoise(I,'gauss',0.02); %添加高斯噪声
J = imnoise(I,'salt & pepper',0.02); (注意空格) %添加椒盐噪声
ave1=fspecial('average',3); %产生3×3的均值模版
ave2=fspecial('average',5); %产生5×5的均值模版
K = filter2(ave1,J)/255; %均值滤波3×3
L = filter2(ave2,J)/255; %均值滤波5×5
M = medfilt2(J,[3 3]); %中值滤波3×3模板
N = medfilt2(J,[4 4]); %中值滤波4×4模板
imshow(I);
figure,imshow(J);
figure,imshow(K);
figure,imshow(L);
figure,imshow(M);
figure,imshow(N);
(3) 应用傅立叶变换进行图像处理
傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
(4) 傅立叶(Fourier )变换的定义
对于二维信号,二维Fourier 变换定义为:
∞∞
F (u , v ) =
逆变换: -∞-∞⎰⎰f (x , y ) e -j 2π(ux +uy ) dxdy
∞∞
f (x , y ) =
二维离散傅立叶变换为: -∞-∞⎰⎰F (u , v ) e j 2π(ux +uy ) dudv
i k -j 2π(m +n ) 1N -1N -1
N N F (m , n ) =∑∑f (i , k ) e N i =0k =0
逆变换:
1f (i , k ) =N m =0n =0∑∑F (m , n ) e N -1N -1j 2π(m i k +n ) N N
图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。
(5)利用MA TLAB 软件实现数字图像傅立叶变换的程序:
I=imread(‘原图像名.gif’); %读入原图像文件
imshow(I); %显示原图像
fftI=fft2(I); %二维离散傅立叶变换
sfftI=fftshift(fftI); %直流分量移到频谱中心
RR=real(sfftI); %取傅立叶变换的实部
II=imag(sfftI); %取傅立叶变换的虚部
A=sqrt(RR.^2+II.^2); %计算频谱幅值
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225 %归一化
figure; %设定窗口
imshow(A); %显示原图像的频谱
三、实验设备与软件
(1) IBM-PC计算机系统
(2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox)
(3) 实验所需要的图片
四、实验内容与步骤
1)模板滤波
a) 调入并显示原始图像Sample2-1.jpg 。
b) 利用imnoise 命令在图像Sample2-1.jpg 上加入高斯(gaussian) 噪声
c) 利用预定义函数fspecial 命令产生平均(average)滤波器
⎡-1-1-1⎤⎢-19-1⎥⎢⎥⎢-1-1-1⎥⎦ ⎣
d )分别采用3x3和5x5的模板,分别用平均滤波器以及中值滤波器,对加入噪声的图像进行处理并观察不同噪声水平下,上述滤波器处理的结果;
e )选择不同大小的模板,对加入某一固定噪声水平噪声的图像进行处理,观察上述滤波器处理的结果。
f )利用imnoise 命令在图像Sample2-1.jpg 上加入椒盐噪声(salt & pepper)
g )重复c)~ e)的步骤
h )输出全部结果并进行讨论。
2)频域滤波
1.将图像内容读入内存;
2.用Fourier 变换算法,对图像作二维Fourier 变换;
3.将其幅度谱进行搬移,在图像中心显示;
4.用Fourier 系数的幅度进行Fourier 反变换;
5.用Fourier 系数的相位进行Fourier 反变换;
6.比较4、5的结果,评价人眼对图像幅频特性和相频特性的敏感度。
7.记录和整理实验报告。
五、思考题/问答题
(1) 简述高斯噪声和椒盐噪声的特点。
(2) 结合实验内容,定性评价平均滤波器/中值滤波器对高斯噪声和椒盐噪声的去噪效果?
(3) 结合实验内容,定性评价滤波窗口对去噪效果的影响?
六、实验报告要求
描述实验的基本步骤,用数据和图片给出各个步骤中取得的实验结果,并进行必要的讨论,必须包括原始图像及其计算/处理后的图像。
2) 利用MATLAB 软件实现空域滤波的程序:
I=imread('moon.tif' );
J = imnoise(I,'gauss' ,0.02);
J = imnoise(I,'salt & pepper',0.02);
ave1=fspecial('average' ,3);
ave2=fspecial('average' ,5);
K = filter2(ave1,J)/255;
L = filter2(ave2,J)/255;
M = medfilt2(J,[3 3]);
N = medfilt2(J,[4 4]);
imshow(I);
figure,imshow(J);
figure,imshow(K);
figure,imshow(L);
figure,imshow(M);
利用MATLAB 软件实现数字图像傅立叶变换的程序:
I=imread('moon.tif' );
imshow(I);
fftI=fft2(I);
sfftI=fftshift(fftI);
RR=real(sfftI);
II=imag(sfftI);
A=sqrt(RR.^2+II.^2);
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225 ¯
figure;
imshow(A);
实验心得:
在这次实验中学会了用MATLAB 对图像进行滤波的处理,了解到滤波的集中不同方式。运用傅里叶变换的性质和变换方法及其应用,以数学的只是为前提,在MATLAB 中完成图像的处理,在明白滤波原理的基础上分析程序算法,需要认真的分析在不足的地方增加算法语句,同时注重和同学的交流,更好的完成实验。