实验二空域图象滤波.docx
《实验二空域图象滤波.docx》由会员分享,可在线阅读,更多相关《实验二空域图象滤波.docx(17页珍藏版)》请在冰豆网上搜索。
![实验二空域图象滤波.docx](https://file1.bdocx.com/fileroot1/2023-1/2/7c0af579-1242-41e8-b7ff-f6b621914908/7c0af579-1242-41e8-b7ff-f6b6219149081.gif)
实验二空域图象滤波
实验报告
实验课程:
光电图像处理
姓名:
xxxx
学号:
xxxxxxxxxxxx
实验地点:
xxxxxxx
指导老师:
xxx
实验时间:
xxxx年x月xx日
一.实验名称:
空域图像滤波
二.实验目的
1、了解数字图像的空域平滑滤波和锐化滤波器的概念和基本原理;
2、熟悉和掌握几种基本的空间域低通滤波原理和实现方法;
3、熟悉和掌握几种基本的空间域统计排序滤波原理和实现方法;
4、熟悉和掌握几种基本的空间域高通滤波原理和实现方法;
5、能熟练利用matlab工具编程实现数字图像的各种空间域滤波处理。
三.实验原理
(一)数字图像的空域平滑滤波
1、邻域均值滤波
在介绍滤波之前,有些知识需要提前了解。
模板运算是数字图像处理中经常用到的一种运算方式。
基本思想:
将模板与待
处理的图像做卷积/相关运算,达到图像平滑、锐化或边缘检测等目的。
若滤波器(Mask)尺寸为m×n设m=2a+1,n=2b+1,则有
相关:
卷积:
描述:
用当前像素邻域内像素平均灰度值代替当前像素的原灰度值。
含噪图像为:
其中,f(x,y)为原始图像,η(x,y)为加性噪声。
平滑图像为:
其中S表示点(x,y)邻域内的点集,M为S内总点数。
从模板上理解,就是用平均模板与原图像f作滤波相关运算。
2、统计排序滤波
中值滤波是一种统计排序(非线性)的信号处理方法,由J.W.Tukey(1971)首先提出,并应用于一维信号处理。
后来,应用于二维图像处理技术领域。
其基本思想:
用局部邻域像素灰度值排序后的中值代替当前像素的灰度值。
其中:
median——中值滤波算子,取中值;
f(x,y)——原始图像阵列;
g(x,y)——中值滤波后当前像素灰度值;
S——滤波窗口/邻域,大小为m×n。
该滤波方法对点状噪声和脉冲干扰有良好的抑制作用,能保持图像边缘,使原始图像不产生模糊。
但是对高斯噪声无能为力,对离散阶跃信号、斜声信号不产生作用,排序计算比较费时,需快速算法。
(二)数字图像的空域高通滤波
1、一阶梯度算子
易知微分运算可以用来求取信号的变化率/梯度,具有加强高频分量的作用,从而使图像轮廓变清晰。
设连续图像函数为f(x,y),它的梯度是一个向量,定义为:
分析:
(1)在(x,y)点处的梯度,方向指向f(x,y)最大变化率的方向。
(2)幅度等于f(x,y)的最大变化率,即
计算得到梯度值后,有各种策略使图像轮廓突出。
其中,M为图像f(x,y)梯度的幅度值。
梯度分量合成原则:
1
2
3
2、Laplace算子
二维连续函数f(x,y)的拉普拉斯(Laplace)算子是一个二阶的微分,定义为:
下列矩阵即为laplace模版:
3、反锐化掩膜处理
利用原图像减去原图平滑滤波后的结果构成反锐化模板:
锐化结果:
4、高提升滤波
将锐化的结果叠加于原图像:
对于矩阵来说:
先将矩阵全部取相反数,之后将矩阵的中心加1。
高通滤波在增强了边缘/轮廓的同时,噪声也可能增强。
因此,会丢失图像的层次,变的粗糙。
四.实验步骤
(一)数字图像的空域平滑滤波
1、邻域均值滤波
图1
2、统计排序滤波
图2
(二)数字图像的空域高通滤波
1、一阶梯度算子
图3
2、Laplace算子
图4
3、反锐化掩膜处理
图5
4、高提升滤波
图6
五.实验结果及分析
(一)数字图像的空域平滑滤波
1、邻域均值滤波
图7
2、统计排序滤波
图8
(二)数字图像的空域高通滤波
1、
一阶梯度算子
2、
图10
Laplace算子
3、
图11
反锐化掩膜处理
4、
高提升滤波
分析:
●邻域均值滤波可以使图像变得平滑,但是与此同时图像会变得模糊,特别是轮廓边缘不清晰。
●中值滤波可以对点状噪声和脉冲干扰有良好的抑制作用而最值滤波却没有这种能力,中值滤波同时也能保持图像边缘,使原始图像不产生模糊。
但是效率上比较低,因为排序计算比较费时。
●一阶梯度滤波可以突出原图的轮廓,因为灰度变化平稳部分,其梯度值较小,显示结果较暗。
gx由于是矩阵列方向上的差分运算,所以最终得到的图像y方向的轮廓比较明显,而gy则正好相反,其x方向的轮廓比较明显。
●Laplace算子滤波得到的结果可以显示原图像的细节,但是不是很明显的能分辨。
●反锐化掩模处理通过提取原图的轮廓与原图的叠加,可以使结果的轮廓更加清晰。
●高提升滤波能够很明显的突出原图的轮廓于细节,但同时噪声也得到了增强,会丢失图像的层次,使图像看起来粗糙。
六.实验心得体会和建议
●通过本实验使我了解到空间域平滑滤波和锐化滤波这两种滤波的各自特点,通过两类实验的对比使我明白了它们的区别,在以后的应用中更加的有的放矢。
●建议可以让同学尝试自行设计相关的滤波模板,增加对滤波的理解,提高自我动手能力和学习的兴趣。
七.程序源代码
%================================================
%由于实验中多次使用相关运算,所以在这里将其封装成函数,便于调用。
%================================================
function[I1]=mycorr2(I,h)
[ma,na]=size(I);
[mb,nb]=size(h);
mb_hf=floor(mb/2);
nb_hf=floor(nb/2);
zfilt=zeros(ma+mb-1,na+nb-1);
Ip=zfilt;
r1=mb_hf+1;
r2=ma+mb-1-mb_hf;
c1=nb_hf+1;
c2=na+nb-1-nb_hf;
Ip(r1:
r2,c1:
c2)=double(I);
%================================================
%对原图像进行模版处理
%================================================
forr=r1:
r2
forc=c1:
c2
total=0;
fori=-mb_hf:
mb_hf
forj=-nb_hf:
nb_hf
total=total+h(i+mb_hf+1,j+nb_hf+1).*Ip(r+i,c+j);
end
end
zfilt(r,c)=total;
end
end
I1=zfilt(r1:
r2,c1:
c2);
End
(一)数字图像的空域平滑滤波
1、邻域均值滤波
%读取原图像并显示
I=imread('cameraman.tif');
subplot(221),imshow(I);title('OriginalImage')
%================================================
%加入高斯噪声,并显示加入后的图像
%================================================
I1=imnoise(I,'gaussian');
subplot(222),imshow(I1);title('NoiseImage')
%================================================
%设计模版并与加入噪声后的图像做相关。
%================================================
h1=[111;121;111]/10;
I2=mycorr2(I1,h1);
subplot(223),imshow(mat2gray(I2));title('FilterImagewithaverage')
h2=[14741;41626164;72647267;41626164;14741]/273;
I3=mycorr2(I1,h2);
subplot(224),
imshow(mat2gray(I3));title('FilterImagewithaveragegaussian')
2、统计排序滤波
clc;clear
%================================================
%读取原图像,将其加入椒盐噪声,并显示改变后的图像
%================================================
I=imread('lowlight.jpg');
I1=imnoise(I,'salt&pepper');
subplot(221);
imshow(I1);title('NoissyImage');
I1=double(I1);
x=3;%选取3*3的矩阵做统计排序处理
[m,n]=size(I1);
fori=1:
m-x+1
forj=1:
n-x+1
s=I1(i:
i+(x-1),j:
j+(x-1));
s1=min(min(s));
s2=median(median(s));
s3=max(max(s));
I2(i+(x-1)/2,j+(x-1)/2)=s1;%将所得3*3矩阵中的最小值赋给掩膜矩阵中间位置
I3(i+(x-1)/2,j+(x-1)/2)=s2;%将所得3*3矩阵中的中值赋给掩膜矩阵中间位置
I4(i+(x-1)/2,j+(x-1)/2)=s3;%将所得3*3矩阵中的最大值赋给掩膜矩阵中间位置
end
end
subplot(222)
imshow(uint8(I2));title('Imagewithminimumfilter');
subplot(223);
imshow(uint8(I3));title('Imagewithmedianfilter');
subplot(224);
imshow(uint8(I4));title('Imagewithmaximumfilter');
(二)数字图像的空域高通滤波
1、一阶梯度算子
%===================================================
%读取原图像并显示
%===================================================
I=imread('cameraman.tif');
subplot(221),imshow(I),title('OriginalImage')
%===================================================
%设计模版,调用自己封装的相关函数,显示x方向的梯度图像
%===================================================
gx=[-101;-101;-101];
I1=mycorr2(I,gx);
subplot(222),imshow(mat2gray(I1)),title('TheGxwithImage')
%===================================================
%设计模版,调用自己封装的相关函数,显示y方向的梯度图像
%===================================================
gy=[-1-1-1;000;111];
I2=mycorr2(I,gy);
subplot(223),imshow(mat2gray(I2)),title('TheGywithImage')
%===================================================
%将x方向的梯度和y方向的梯度进行合成并显示
%===================================================
I3=sqrt(I2.^2+I1.^2);
subplot(224),imshow(mat2gray(I3));title('Sqrt(gx.^2+gy.^2)Image')
2、Laplace算子
%=================================================
%读取原图像并显示
%=================================================
I=imread('Einstein.jpg');
I=rgb2gray(I);
subplot(121),imshow(I);title('OriginalImage')
%==================================================
%设计Laplace模版,调用自己封装的相关函数,显示相关后的图像
%==================================================
h=[010;1-40;011];
I1=mycorr2(I,h);
subplot(122),imshow(mat2gray(I1));title('FilterImagewithLaplace')
3、反锐化掩膜处理
%==================================================
%读取原图像并显示
%==================================================
I=imread('girl_rgb.jpg');
I=rgb2gray(I);
subplot(221),imshow(I),title('OriginalImage')
%==================================================
%设计低通滤波,调用自己封装的相关函数进行平滑处理,并显示处理结果
%==================================================
h=fspecial('gaussian',9,2.5)
I1=mycorr2(I,h);
subplot(222),imshow(mat2gray(I1)),title('SmoothingImage')
%==================================================
%用原始图减去上一步处理结果,得到Unsharp掩模图像。
%==================================================
I2=double(I)-I1;
subplot(223),imshow(mat2gray(I2));title('Unsharpmask')
%==================================================
%再用原始图加上Unsharp掩模图像,即得到反锐化处理图像。
%==================================================
I3=double(I)+I2;
subplot(224),imshow(mat2gray(I3));title('Unsharpmaskingimage')
4、高提升滤波
%==================================================
%读取原图像并显示
%==================================================
I=imread('Einstein.jpg');
I=rgb2gray(I);
subplot(121),imshow(I);title('OriginalImage')
%==================================================
%建立模版并对原矩阵边界进行加零处理
%==================================================
h=[-1-1-1;-19-1;-1-1-1];
I1=mycorr2(I,h);
subplot(122),imshow(mat2gray(I1));title('HighFilterImagewithLaplace')
八.思考题
1、简要叙述数字图像空域平滑与锐化滤波的异同和作用。
答:
●平滑滤波能减弱或消除图像中的高频率分量而不影响低频分量,也就是说消除灰度变化较大部分使图像变得比较平滑。
锐化滤波正好相反,锐化滤波常用于增强被模糊的细节或目标的边缘,强化图像的细节。
●处理方式都是利用模板矩阵与原图像进行卷积。
2、一幅数字图像经高通滤波后,滤波结果是图像的高频还是低频成分。
图像的低频成分和高频成分分别反映了图像区域的什么特征?
答:
●高频成分
●高频低频分量反应了图像中的区域边缘等灰度值变化程度.频率越高变化越大.
3、设计空间域平滑和锐化滤波器的一般性原则分别是什么,即空域平滑模版和锐化模版各自的特点有哪些?
答:
●空域平滑模板:
模板中的值都是正值;
●空域锐化模板:
a)掩模中心系数与外围系数符号相反;
b)掩模系数之和为0。
报告评分:
指导教师签字: