《实验四数字图像滤波及边缘检测课件》由会员分享,可在线阅读,更多相关《实验四数字图像滤波及边缘检测课件(29页珍藏版)》请在金锄头文库上搜索。
1、实验四实验四 数字图像滤波及边缘检测数字图像滤波及边缘检测 实验四数字图像滤波及边缘检测了解图像复原的基本方法。了解图像复原的基本方法。了解图像边缘检测。了解图像边缘检测。利用利用MATLABMATLAB提供的函数实现对图像处理。提供的函数实现对图像处理。一、实验目的一、实验目的实验四数字图像滤波及边缘检测二、实验原理二、实验原理图像恢复和图像增强一样,都是为了改善图像图像恢复和图像增强一样,都是为了改善图像的视觉效果,以便后续处理。只是图像增强方的视觉效果,以便后续处理。只是图像增强方法更偏重于主观判断,而图像恢复则是根据图法更偏重于主观判断,而图像恢复则是根据图像畸变或退化原因,进行模型处
2、理。像畸变或退化原因,进行模型处理。图像分割是图像检索、识别和图像理解的基本图像分割是图像检索、识别和图像理解的基本前提。前提。 实验四数字图像滤波及边缘检测1、图像中值滤波、图像中值滤波中值滤波是基于排序统计理论的一种能有效抑制噪声中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术的非线性信号处理技术。中值滤波的优点是运算简单中值滤波的优点是运算简单且速度较快且速度较快,在某些条件下在某些条件下,中值滤波方法可以去除中值滤波方法可以去除噪声噪声,保护图像边缘保护图像边缘,使图像较好地复原使图像较好地复原。它非常适它非常适用于一些线性滤波器无法胜任的数字图像处理的应用用于一些线
3、性滤波器无法胜任的数字图像处理的应用场合场合。实验四数字图像滤波及边缘检测中值滤波的基本原理中值滤波的基本原理中值滤波的基本原理是把数字图像或数字序列中一点中值滤波的基本原理是把数字图像或数字序列中一点的值用该点邻域中各点值的中值替代。的值用该点邻域中各点值的中值替代。例如:有一个序列为例如:有一个序列为( (2 2 , ,3 3 , ,4 4 , ,5 5 , ,6 6) ,) ,这个序列的中这个序列的中值为值为4 4。中值滤波器用于图像处理中是这样进行的中值滤波器用于图像处理中是这样进行的: :设置一个滤设置一个滤波窗口,将其移遍图像波窗口,将其移遍图像( (序列序列) )上的点,且用窗口
4、内各上的点,且用窗口内各原始值的中值代替窗口中心点的值。原始值的中值代替窗口中心点的值。实验四数字图像滤波及边缘检测利用利用MatlabMatlab实现数字图像中值滤波实现数字图像中值滤波应用应用Matlab Matlab 软件中图像处理工具箱的函数。软件中图像处理工具箱的函数。二维中值滤波器的函数格式如下二维中值滤波器的函数格式如下: : B = Medfilt2(A,m n) B = Medfilt2(A,m n); B = Medfilt2(A) B = Medfilt2(A)。( (缺省窗口大小为缺省窗口大小为3 3)3 3) 实验四数字图像滤波及边缘检测函数:函数:imnoise()
5、imnoise() 格式:格式: J=imnoise(I,type,) type: gaussian Gauss白噪声白噪声 salt & pepper 椒盐噪声椒盐噪声 speckle 乘法噪声乘法噪声 图像中添加噪声图像中添加噪声实验四数字图像滤波及边缘检测gaussian Gaussgaussian Gauss白噪声参数设置白噪声参数设置: : M M、V V:在图像中加入均值为:在图像中加入均值为M M、方差为、方差为V V的高斯的高斯白噪声。白噪声。( (缺省缺省M=0,V=0.01)M=0,V=0.01) J=imnoise(I,gaussian,M,V) J=imnoise(I,
6、gaussian,M,V)salt & pepper salt & pepper 椒盐噪声参数设置椒盐噪声参数设置: : D: D:在图像在图像I I中加入强度为中加入强度为D D的的“椒盐椒盐”黑白像素黑白像素点点. . ( (缺省为缺省为0.05)0.05) J=imnoise(I, J=imnoise(I, salt & pepper,D),D)speckle speckle 乘法噪声参数设置乘法噪声参数设置: : J=imnoise(I, J=imnoise(I, speckle,V),V),使用公式使用公式J=I+n*I,J=I+n*I,向图像向图像I I中加入乘法噪声中加入乘法噪声
7、, ,其中其中n n是均值为是均值为0,0,方差为方差为V V均匀分布的随机噪声均匀分布的随机噪声.(V.(V的缺省值为的缺省值为0.04) 0.04) 实验四数字图像滤波及边缘检测x=imread(dog.jpg,jpg);x=imread(dog.jpg,jpg);i=rgb2gray(x);i=rgb2gray(x);subplot(2,2,1);subplot(2,2,1);subimage(i);subimage(i);j1=imnoise(i,gaussian,0,0.04);j1=imnoise(i,gaussian,0,0.04);subplot(2,2,2);subplot(
8、2,2,2);subimage(j1);subimage(j1);j2=imnoise(i,salt & pepper,0.04);j2=imnoise(i,salt & pepper,0.04);subplot(2,2,3);subplot(2,2,3);subimage(j2);subimage(j2);j3=imnoise(i,speckle,0.08);j3=imnoise(i,speckle,0.08);subplot(2,2,4);subplot(2,2,4);subimage(j3);subimage(j3);实验四数字图像滤波及边缘检测实验四数字图像滤波及边缘检测a=imrea
9、d(dog.jpg,jpg);a=imread(dog.jpg,jpg);i=rgb2gray(x);i=rgb2gray(x);subplot(2,2,1); subimage(i);subplot(2,2,1); subimage(i);j=imnoise(i,salt & pepper,0.04);j=imnoise(i,salt & pepper,0.04);subplot(2,2,2); subimage(j);subplot(2,2,2); subimage(j);c=medfilt2(j,2 2);c=medfilt2(j,2 2);subplot(2,2,3); subimag
10、e(c);subplot(2,2,3); subimage(c);d=medfilt2 (j ,5 5);d=medfilt2 (j ,5 5);subplot(2,2,4); subimage(d);subplot(2,2,4); subimage(d);对加噪的图像进行二维中值滤波对加噪的图像进行二维中值滤波实验四数字图像滤波及边缘检测实验四数字图像滤波及边缘检测2 2、边缘检测、边缘检测在对图像的研究和应用中,人们往往仅对各幅图像中在对图像的研究和应用中,人们往往仅对各幅图像中的某些部分感兴趣,需要将这些有关区域分离提取出的某些部分感兴趣,需要将这些有关区域分离提取出来,在此基础上对相关
11、目标作进一步的处理。来,在此基础上对相关目标作进一步的处理。分割算法分割算法 借助灰度图像中像素灰度值的两个性质:不连续性和借助灰度图像中像素灰度值的两个性质:不连续性和相似性。区域内部的像素一般具有灰度相似性,而在相似性。区域内部的像素一般具有灰度相似性,而在区域之间的边界上一般具有灰度不连续性。区域之间的边界上一般具有灰度不连续性。 利用区域间灰度不连续性的基于边界的算法;利用区域间灰度不连续性的基于边界的算法; 利用区域内灰度相似性的基于区域的算法。利用区域内灰度相似性的基于区域的算法。实验四数字图像滤波及边缘检测根据分割过程中处理策略的不同根据分割过程中处理策略的不同并行算法并行算法
12、所有判断和决定都可独立和同时地做出。所有判断和决定都可独立和同时地做出。串行算法串行算法 前期处理的结果可被其后的处理过程所利用。前期处理的结果可被其后的处理过程所利用。两种算法的对比两种算法的对比 串行算法所用时间要长与并行算法,但其抗噪声能力串行算法所用时间要长与并行算法,但其抗噪声能力则强于并行算法。则强于并行算法。实验四数字图像滤波及边缘检测分割算法分类表分割算法分类表注意:现在尚无一种适合于所有图像的通用分割算法,注意:现在尚无一种适合于所有图像的通用分割算法,现在提出的分割算法大都是针对具体问题的。现在提出的分割算法大都是针对具体问题的。分类分类边界(不连续边界(不连续性)性)区域
13、(相似性)区域(相似性)并行处理并行处理PBPR串行处理串行处理SBSR实验四数字图像滤波及边缘检测边缘检测边缘检测采用并行边界技术。采用并行边界技术。两个具有不同灰度值的相邻区域之间总存在边缘。边两个具有不同灰度值的相邻区域之间总存在边缘。边缘是灰度值不连续的结果,这种不连续常可利用求导缘是灰度值不连续的结果,这种不连续常可利用求导的方法检测到。一般常用一阶和二阶导数来检测边缘。的方法检测到。一般常用一阶和二阶导数来检测边缘。微分算子微分算子 边缘检测可借助空域微分算子通过卷积完成。边缘检测可借助空域微分算子通过卷积完成。 梯度算子;梯度算子; 拉普拉斯算子;拉普拉斯算子; 综合正交算子。综
14、合正交算子。 实验四数字图像滤波及边缘检测边界闭合边界闭合利用各种算子得到的边缘像素常常是孤立或分小段连利用各种算子得到的边缘像素常常是孤立或分小段连续的。为组成区域的封闭边界将不同的区域分开,需续的。为组成区域的封闭边界将不同的区域分开,需要将边缘像素连接起来。要将边缘像素连接起来。哈夫变换哈夫变换 是利用图像全局特性而将边缘像素连接起来组成区域是利用图像全局特性而将边缘像素连接起来组成区域封闭边界的方法。封闭边界的方法。 实验四数字图像滤波及边缘检测MATLABMATLAB实例实例提取二进制图像的轮廓。提取二进制图像的轮廓。语法:语法:BW2 = bwmorph(BW1,operation
15、)BW2 = bwmorph(BW1,operation)operationoperation取值:取值:bridge;clean;close; fill; majority; remove; shrink;skel等。等。 实验四数字图像滤波及边缘检测BW1 = BW1 = imread(imread(circles.pngcircles.png););subplot(2,2,1); subplot(2,2,1); subimage(BW1);subimage(BW1);BW2 = bwmorph(BW1,BW2 = bwmorph(BW1,removeremove););subplot(2
16、,2,2); subplot(2,2,2); subimage(BW2)subimage(BW2)实验四数字图像滤波及边缘检测检测灰度图像的边缘检测灰度图像的边缘格式:格式: BW = edge(I,method) BW = edge(I,method)I = I = imread(rice.pngimread(rice.png););imshow(Iimshow(I););BW1 = BW1 = edge(I,prewittedge(I,prewitt););figure; figure; imshow(BW1); imshow(BW1); BW2 = edge(I,canny);BW2 =
17、 edge(I,canny);figure;figure;imshow(BW2);imshow(BW2);实验四数字图像滤波及边缘检测实验四数字图像滤波及边缘检测区域生长法分割图像区域生长法分割图像主要考虑像素及其空间邻域像素之间的关系,开始时主要考虑像素及其空间邻域像素之间的关系,开始时确定一个或多个像素点作为种子,然后按照某种相似确定一个或多个像素点作为种子,然后按照某种相似准则增长区域,逐步生成具有某种均匀性的空间区域,准则增长区域,逐步生成具有某种均匀性的空间区域,将相邻(将相邻(4 4邻域或邻域或8 8邻域)的具有相似性质的像素或区邻域)的具有相似性质的像素或区域归并从而逐步增长区域
18、,直到没有可以归并的点或域归并从而逐步增长区域,直到没有可以归并的点或其他小区域为止。区域内像素的相似性度量可以是平其他小区域为止。区域内像素的相似性度量可以是平均灰度值、纹理或颜色等信息。均灰度值、纹理或颜色等信息。实验四数字图像滤波及边缘检测区域生长由区域生长由3 3个主要步骤组成个主要步骤组成选择合适的种子点。选择合适的种子点。确定生长准则。确定生长准则。确定生长停止条件。确定生长停止条件。实验四数字图像滤波及边缘检测工具函数工具函数imreconstrct( )imreconstrct( )语法格式:语法格式: outim=imreconstruct(markerim,maskim)
19、outim=imreconstruct(markerim,maskim)其中:其中: markerim markerim 标记图像标记图像 maskim maskim 模板图像模板图像 工具函数的工作过程是一个迭代过程。工具函数的工作过程是一个迭代过程。实验四数字图像滤波及边缘检测对一幅灰度图像用区域生长法进行分割对一幅灰度图像用区域生长法进行分割首先指定几个种子点,其次把图像中灰度值等首先指定几个种子点,其次把图像中灰度值等于种子点的像素点作为种子点,然后以种子点于种子点的像素点作为种子点,然后以种子点为中心,各像素点与种子点的灰度值的差不超为中心,各像素点与种子点的灰度值的差不超过某个值。
20、则认为该像素点和种子点具有相似过某个值。则认为该像素点和种子点具有相似性。性。实验四数字图像滤波及边缘检测MATLABMATLAB参考程序参考程序a=imread(dog1.jpg);a=imread(dog1.jpg);I=rgb2gray(a);I=rgb2gray(a);subplot(1,2,1); imshow(I);subplot(1,2,1); imshow(I);seedx=256,128,64;seedx=256,128,64;seedy=128,256,128;seedy=128,256,128;hold onhold onplot(seedx,seedy,gs,linew
21、idth,1);plot(seedx,seedy,gs,linewidth,1);title(title(原始图像及种子位置原始图像及种子位置););I=double(I);I=double(I);markerim=I=I(seedy(1),seedx(1);markerim=I=I(seedy(1),seedx(1);for i=2:length(seedx)for i=2:length(seedx) markerim=markerim | (I=I(seedy(i),seedx(i); markerim=markerim | (I=I(seedy(i),seedx(i);endendthr
22、esh=15,10,15;thresh=15,10,15;maskim=zeros(size(I);maskim=zeros(size(I);for i=1:length(seedx)for i=1:length(seedx) g=abs(I-I(seedy(i),seedx(i)=thresh(i); g=abs(I-I(seedy(i),seedx(i)=thresh(i); maskim=maskim | g; maskim=maskim | g;endendg,nr=bwlabel(imreconstruct(markerim,maskim),8);g,nr=bwlabel(imrec
23、onstruct(markerim,maskim),8);g=mat2gray(g);g=mat2gray(g);subplot(1,2,2); imshow(g);subplot(1,2,2); imshow(g);title(title(三个种子点区域生长结果三个种子点区域生长结果););实验四数字图像滤波及边缘检测三、实验内容三、实验内容任选一幅图像,对其添加某种噪声,选取一种滤波方任选一幅图像,对其添加某种噪声,选取一种滤波方法,对该图像进行处理,比较图像处理前后的差别。法,对该图像进行处理,比较图像处理前后的差别。任选一幅图像,提取其灰度图像的边缘并比较图像处任选一幅图像,提取其灰度图像的边缘并比较图像处理前后的效果。理前后的效果。实验四数字图像滤波及边缘检测四、实验报告要求四、实验报告要求简述实验目的;简述实验目的;简述你所采用的图像处理的方法、原理;简述你所采用的图像处理的方法、原理;图像处理前后图像的变化;图像处理前后图像的变化;分析你采用的这种方法的优点;分析你采用的这种方法的优点;附程序清单和处理前后图像。附程序清单和处理前后图像。实验四数字图像滤波及边缘检测实验四数字图像滤波及边缘检测