二值形态学在图像边缘检测中的研究应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二值形态学在图像边缘检测中的研究应用
第一章概述
1.1选题的背景以及意义
近年来,数字图像在心理学、生理学、计算机科学等诸多方面得到了广泛的应用。
图像的工程可分为图像处理(Image Processing)、图像分析(Image Analysis)和图像理解(Image Understanding)三个阶段。
图像分析是图像处理和图像理解的,由此可见图像分析的重要性。
边缘检测是图像分析的最基本的研究课题之一。
图像分析简而言之,就是对图像中感兴趣的部分进行检测,获得目标的基本信息,是一个从图像到数据的过程。
边缘是边缘是以图像的局部特征不连续的形式出现的,是指图像局部亮度变化最显著的部分,获得了图像的边缘,就能为描述或识别目标提供重要的参数,从而对图像进行精确分析。
图像边缘检测是图像的分割,目标识别,区域提取等的重要基础。
许多场合都需要计算机对图像进行分析和理解。
比如说,集成电路的自动检测,医学领域中器官检测。
边缘检测在图像分析研究领域中占有重要的地位,目前已经成为机器视觉研究领域最跃的课题之一。
1.2 国外研究的现状
为了保证所提取特征参数的准确性,边缘检测必须合理解决边缘有无、真假以及定位的问题。
这其中涉及两个关键因素,一是边缘检测的尺度。
二是噪声,图像中不可避免地会包含有噪声,在噪声的分布和方差等一些信息未知的情况下,要分辨高频信号的噪声以及边缘存在一定的难度。
目前边缘检测的方法大致包括以下几类:
(1)基于微分边缘检测技术[3,22]
基于微分检测的技术分为两类:(1)一阶微分算子,如Robert算子、Sobel算子、Prewitt算子等。
检测的实质多是在梯度值大于某一值时就认为是边缘点,导致边缘点太多,影响边缘检测的精度。
(2)二阶微分算子,如拉普拉斯算子,Canny算子等,检测的实质是求局部的最大值点,此类算子提高了图像的检测的准确精度。
(2)基于小波与分形理论边缘检测技术[4,23]
小波理论和分形理论的日益成熟以及广泛应用,90年代基于此类技术的边缘检测算子相继出现。
基于小波与分形理论技术一般优于微分检测技术,在不同尺度下的边缘特征都可以检测到,图像边缘定位较为准确。
(3)数学形态学的边缘检测技术[4,22]
数学形态学是用集合论方法定量描述几何结构的科学。
数学形态学边缘检测技术一般由于其他的检测技术,结构元素的形状以及大小关乎边缘的检测精度,噪声的去除以及细节的保护。
基于数学形态学的边缘检测技术相对于微分算子,模板匹配来说,速度快,效果好,边缘定位精确,精度高。
本文的二值形态学就是数学形态学的一类分支。
(4)基于模糊学的边缘检测技术[4,22]
图像处理过程实际上是对图像灰度矩阵的处理过程。
模糊梯度法是基于图像灰度梯度变化的原理而产生的。
图像的模糊化就是将图像灰度值转换到模糊集中,用一个模糊值来代表图像的明暗程度。
利用模糊理论的不确定性来反映图像灰度梯度变化过程的模糊性,并根据像素的隶属度来确定边缘穿越的位置,可使边缘检测更加准确。
(5)基于神经网络的边缘检测技术[4-5]
图像边缘检测本质上属于模式识别问题,神经网络能很好地解决模式识别问题。
因此,用样本图像对多神经网络进行训练,将训练后的网络再进行实测图像的边缘检测。
在网络训练中,所提取的特征要考虑噪声点和实际边缘的差异,同时去除噪声点形成的虚假边缘,该方法具有较强的抗噪性能。
使用神经网络的方法得到的边缘图像边界封闭性好,边界连续性较好,而且对于任何灰度图的检测可以得到很好的效果。
每一种算子都有其特点,但也有不足之处,特别是检测精度与抗噪能力的均衡问题。
1.3本论文的研究工作以及章节安排
本论文的研究工作是利用二值形态学的基础,综合经典边缘检测算子,以检测的精度,检测的准确度为指标,对图像进行边缘检测以及提取。
最后与经典边缘算子检测进行对比,分析二值形态学边缘检测的优劣。
论文的容安排如下所述:
第1章概述。
阐述了课题的研究背景、意义,以及相应课题的研究现状和存在的问题。
第2章常用经典边缘检测算子研究。
该部分介绍了图像边缘检测常用的算法原理以及比较,通过加入噪声,再进行边缘提取,比较算子对噪声的敏感程度。
第3章二值形态学基本方法。
本章介绍了二值形态学的运算以及二值形态学的操作处理的原理以及实现
第4章二值形态学在图像边缘检测中的应用。
本章介绍了二值形态学在边缘检测中的思路方法以及在matlab上的实现。
第5章前景与展望。
全文所做的主要工作进行了总结,指出了本文有待进一步完善的地方,对未来下一步的发展方向进行了展望。
第二章常用经典边缘算子检测研究
2.1 各种经典边缘检测算子原理简介
众所周知,图像的边缘对人的视觉具有重要的意义,当看一个有边缘的物体时,一般首先感觉到的便是边缘。
灰度或结构等信息的突变处即称为边缘。
边缘是一个区域的结束,同时也是另一个区域的开始,利用该特征可以分割图像。
在检测的过程中,由于会受到外界因素(光照,噪声等)的影响就会使得有边缘的地方不一定能被检测出来,而检测出的边缘不一定是实际边缘。
对于图像的边缘有方向(像素变化平缓)和幅度(像素变化剧烈)两个属性。
边缘上的这种变化则可以用微分算子检测出来,通常用一阶或两阶导数来检测边缘[6],如图2-1。
不同的是一阶导数认为最大值对应边缘位置,而二阶导数则以过零点对应边缘位置。
(a)图像灰度变化(b)一阶导数(c)二阶导数
图2-1 图像灰度变化以及一阶二阶导数
基于一阶导数的边缘检测算子中包括Roberts算子、Sobel算子、Prewitt算子等,对于一阶算子,其实质是通过22
⨯模板作为核与图像中的像素做卷积运算,提
⨯或者33
取阀值获得边缘。
微分边缘算子的依据是图像的边缘对应一阶导数的极大值点和二阶导数的过零点。
基于二阶导数的边缘检测算子,拉普拉斯边缘检测算子对噪声敏感。
解决办法是先对图像进行平滑处理,再利用二阶导数进行边缘检测,如LOG算子。
Canny 算子则是在在满足一定约束条件下的优化算子。
2.2 梯度算子
梯度算子对应于一阶导数,是其最简单导数算子。
已知在点f(x,y)处,梯度grad(F(x,y))的幅度为:
|grand(f(x,y))|=[(x
f∂
∂/)2]1/2 (2.1)
∂/)2+(y
f∂
它们分别求出了灰度在x和y方向上的变化率,但是要对图像上的每一个像素进行以上的运算。
接下来为了减少计算量,简化计算,则可以使
|grand (f(x,y))|=|xf ∇|+|xf ∇|
当然也可以转化成以下,
|grand (f(x,y))|=max (|xf ∇|+|xf ∇|)
里面 xf ∇=f(x,y)-f(x+1,y);
xf ∇=f(x,y)-f(x,y+1)
这个运算量很大,因此常常使用小区域模版进行估似运算从而实现减少运算量。
2.2.1 Reborts 算子
Reborts 算子是一种利用局部差分来寻找边缘的算子,Roberts 梯度算子所采用的
是对角方向相邻两像素值之差近似梯度幅值来检测图像边缘,算子形式如下: )1,1(),(---=j i f j i f Gx (2.2)
)1,(),1(---=j i f j i f Gy
(2.3) 22|),(|y x G G y x G += (2.4)
Roberts 梯度算子对应的卷积模版为:
⎥⎦⎤⎢⎣⎡-=1001Gx ⎥⎦⎤⎢⎣⎡-=0110Gy (2.5)
用以上两个卷积算子与图像运算后,可求出图像的梯度幅值 G ( x,y),然后选择适当的阈值τ ,若 G ( x,y)>τ,则 (i ,j)为边缘点,否则,判断 (i ,j)为非边缘点,得到一个二值图像 { g (i,j)},即边缘图像。
程序实现:
ps=imread('C:\Users\asus\Desktop\设计\a.jpg'); %读取图像
ps=rgb2gray(ps);
figure
imshow(ps);
pa = edge(ps,'roberts');
figure
imshow(pa);
title('Roberts 边缘检测得到的图像');
Robert算子检测
(a) 原图像 (b) Roberts检测的图像
图2-2 原图像与Roberts检测图像
上图结果表明:该算子定位精度高,对于水平和垂直方向的边缘,检测效果较好。
但对于有一定倾角的斜边缘,检测效果则不理想,存在着许多的漏检。
为检测算法对噪声的敏感程度。
现以加入多种(均值0,方差0.001高斯,噪声密度0.001的椒盐,泊松)噪声观察检测。
程序实现:
P1= imnoise(ps,'gaussian',0, 0.001);
figure(2)
imshow(P1)
title('加噪后图像') % 高斯加噪处理
P2= imnoise(ps,'salt & pepper', 0.001);
figure(2)
imshow(p2)
title('加噪后图像') % 椒盐加噪处理
P3= imnoise(ps,'poisson');
figure(2)
imshow(p3)
title('加噪后图像') % 泊松加噪处理
pa = edge(p1,'roberts');
figure
imshow(pa);
title('加噪声后Roberts边缘检测得到的图像');
p1再分别替换成p2,p3,得到图像。
如图2-3所示;
高斯加噪后检测的图像椒盐加噪后检测的图像
(a) 高斯加噪处理图像(b) 椒盐加噪处理图像
泊松加噪后检测的图像
(c) 泊松加噪处理图像
图2-3加入三种噪声后检测的效果
从上图可以看出,含噪声的情况下,Roberts 算子不能有效的抑制噪声,则容易产生一些伪边缘,边缘比较粗,边缘定位精度较差。
因此,该算子适合于对低噪声且具有陡峭边缘的图像提取边缘。
2.2.2 Sobel算子
Sobel 算子在边缘检测算子扩大了其模版,在边缘检测的同时尽量削弱了噪声。
其模版大小为3×3,其将方向差分运算与局部加权平均相结合来提取边缘。
在求取图像梯度之前,先进行加权平均,然后进行未分,加强了对噪声的一致。
Sobel 算子所对应的卷积模版为:
⎥⎥⎥⎦⎥⎢⎢⎢⎣⎢---=101202`101Gx ⎥⎥⎥⎦⎥⎢⎢⎢⎣⎢--=121000121Gy (2.6)
图像中的像素点和水平和垂直两个卷积算子做卷积,算得到梯度幅值 G ( x,y),并且选取合适的阀值 ,若 G ( x,y)>τ,则 (i ,j)为边缘点,否则,判断 (i ,j)为非边缘点。
由此得到二值图像 { g (i,j)},该图像即为边缘图像。
Sobel 算子在空间上比较容易实现,不但产生较好的边缘检测效果,同时,由于其引入了局部平均,使其受噪声的影响也较小。
在对精度要求不是很高的场合下,Sobel 算子是一种较为常用的边缘检测算法。
程序实现:
pa = edge(ps,'sobel');
figure
imshow(pa);
title('Sobel 边缘检测得到的图像');
原图
像
Sobel 边缘检测得到的图像
(a) 原图像 (b) Sobel 检测的图像
图 2-4 原图像-Sobel 算子检测的图像
为检测该算子对噪声的敏感程度,加入上述噪声,程序不变,显示结图2-5如下: 由显示结果所示,sobel 算子对灰度渐变图像处理效果比较好,抑制噪声的性能强于Roberts ,边缘定位较为精确,对于一般图像,经常使用Sobel 算子。
Sobel 算子边缘检测效果优于Roberts 算子。
高斯加噪后检测的图
像椒盐加噪后检测的图像
(a) 高斯加噪处理图像 (b)椒盐加噪处理图像
泊松加噪后检测的图像
(c) 泊松加噪处理图像
图2-5加入三种噪声后Sobel 检测的效果
2.2.3 Prewitt 算子
同 Sobel 算子相似,Prewitt 算子也是一种将方向的差分运算和局部平均相结合的方法,也是取水平和垂直两个卷积核来分别对图像中各个像素点做卷积运算,所不同的是,Sobel 算子是先做加权平均然后再微分,Prewitt 算子是先平均后求微分,其对应的卷积模版为:
⎥⎥⎥⎦⎥⎢⎢⎢⎣⎢---=101101`101Gx ⎥⎥⎥⎦⎥⎢⎢⎢⎣⎢---=111000111Gy (2.7)
图像中的每个像素点和以上水平和垂直两个卷积算子做卷积运算后,再计算得到梯度幅值 G ( x,y),然后选取适当的阈值τ,若 G ( x,y)>τ,则 (i ,j)为边缘点,否则,判断 (i ,j)为非边缘点。
由此得到一个二值图像 { g (i,j)},即边缘图像。
Prewitt 算子通过对图像上的每个像素点的八方向邻域的灰度加权差之和来进行检测边缘,对噪声有一定抑制作用,抗噪性较好,但局部平均的加入导致伪边缘出现概率增大,定位的准确率降低。
程序实现:
pa = edge(ps,'prewitt');
figure
imshow(pa);
title('Prewitt边缘检测得到的图像');
如图2-9;
加入三种噪声,显示如图2-6;
prewitt边缘检测得到的图像高斯加噪后检测的图像
(a) Prewitt检测图像 (b) 高斯加噪处理图像
椒盐加噪后检测的图像泊松加噪后检测的图像
(c) 椒盐加噪处理图像 (d) 泊松加噪处理图像
图2-6 prewitt 检测的边缘以及加入三种噪声后检测的图像
上图结果表明,对图像加入噪声后,prewitt 算子虽对噪声具有一定的抑制能力,由于是通过像素平均来实现的,处理的图像出现模糊,而且还会检测出一些伪边缘,因此检测精度比较低,该算子相对适合用于图像噪声比较小的以及边缘灰度值尖锐的图像,检测情况类似于sobel 算子。
2.3 Laplace 算子
Laplace 算子是一种二阶导数算子且不依赖于边缘方向的,具有旋转不变即各向同性的性质,是一个标量[8]。
Laplace 算子的定义为: 22222y f x f f ∂∂+∂∂=∇ (2.8)
用差分方程近似二阶偏倒数得到: )1,(),(2)1,(22-+-+=∂∂y x f y x f y x f x f (2.9) ),1(),(2),1(22y x f y x f y x f y f -+-+=∂∂ (2.10)
将这两个式子合并,可以得到近似Laplace 算子的模版:
⎪⎪⎪⎭
⎫ ⎝⎛-≈∇010*******f
(2.11) 根据Laplace 算子,若边缘存在,则输出出现过零点。
对于过零点的位置精度,研
究表明,通过线性插方法可以精确到子像素分辨率。
值得一提的是,该算子在图像边缘检测中并不常用,其主要原因[8]:Laplace 算子属于二阶导数的算子,相比于一阶算子
更容易受到噪声的影响,不能准确检测到边缘点,幅值产生双边元,对噪声相当敏感。
这是图像复杂分割不希望出现的结果。
因此人们提出了改进的功LOG 算子。
2.4LOG 算子(高斯拉普拉斯算子)
LOG算子的基本思想是[9]:首先先在一定的围做平滑滤波,随后再利用差分算子来检测在相应尺度上的边缘。
滤波器的选择要考虑以下两个因素:第一是滤波器在空间上要求平稳,即空间位置误差Δ x尽可能要小;第二是平滑滤波器本身要带通滤波器,而且在有限的带通是平稳的,即频域误差Δω尽可能要小。
根据信号处理中的测不准原理,Δx 和Δω是相互矛盾的,符合这个原理的滤波器就是高斯滤波器。
该边缘检测器的基本特征是:
(1)所采用的平滑滤波器是高斯滤波器
(2)边缘检测的判据是二阶导数过零点且对应一阶导数的极大值
(3)增强步骤采用的是二阶导数(即二维拉普拉斯函数)
该方法的本质是先用高斯滤波器与图像进行卷积,孤立的噪声点和较小的结构组织被滤除,而且平滑了图像,降低了噪声。
拉普拉斯作为一种标量算子,所以边缘点应该选择一阶导数大于某一阈值的零交叉点来避免检测出非显著的边缘。
实际应用中,常用的LOG算子的模版为:
程序实现:
pa = edge(ps,'log');
figure
imshow(pa);
title('Log边缘检测得到的图像');
如图2-13所示;
由显示结果可知,高斯平滑运算可以有效的滤除噪声,但会导致图像中的某些边缘和不连续部分模糊,该模糊程度取决于空间尺度因子σ的大小。
因此在实际应用中,要根据情况选择适当的σ。
现加入噪声,再对边缘进行检测:如图2-7所示;
由下图显示结果可知,LOG算子对噪声的抑制作用比较明显,图像中某些边缘模糊,边缘无法全部检测到,因此可知, 的选择至关重要,关乎图像的检测精度以及抗噪声能力,对于不同的图像选择不同的尺度因子。
一般来说,尺度因子越大,检测精度越高,而抗噪能力较差。
log边缘检测得到的图像高斯加噪后检测的图像
(a)LOG算子检测的图像(b)高斯加噪处理后图像
椒盐加噪后检测的图像泊松加噪后检测的图像
(c)椒盐加噪处理后图像(d)泊松加噪后处理图像
图2-7 LOG算子检测的图像以及加入三种噪声后检测效果
2.5 Canny算子
1986年,Canny推导出了最优边缘检测算子Canny算子,满足三个准则[8],该算子成为目前使用最广泛的算子。
Canny边缘检测基本原理:
(1)图象边缘检测必须要能有效地抑制噪声以及尽量精确确定边缘的位置。
(2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子。
这就是Canny边缘检测算子。
(3)Canny算子类似于LOG算子,都是先平滑后求导数。
Canny边缘检测算法进行检测过程分为以下四步:
(1):用高斯滤波器平滑处理需检测的图象;
(2):用一阶偏导的有限差分来计算需处理图像的梯度的幅值和方向;
(3):对梯度幅值进行非极大值抑制处理;
(4):用双阈值算法检测和连接边缘。
Canny 算子也存在不足之处:
(1)Canny 算子由于使用较大的滤波尺度,细节容易丢失;
(2)Canny 算子的双阈值是人为选取,边缘检测的定位精确度受到影响较大。
程序实现:
pc=edge(ps,'canny');
figure(4)
imshow(pc)
title('Canny 检测的图像');
如图2-8所示;
现加入噪声,以检测噪声对canny 算子边缘检测以及提取的影响;如图2-8;
Canny 检测的图像
高斯加噪后检测的图像
(a ) Canny 算子检测的图像 (b ) 高斯加噪后处理的图像
椒盐加噪后检测的图
像泊松加噪后检测的图像
(c )椒盐加噪后处理的图像 (d ) 泊松加噪后处理的图像
图2-8 Canny 算子检测的图像以及加入噪声后检测的效果
2.6 各种经典边缘检测算子性能比较
经典边缘算子各有不同,通过图片效果以及加噪处理,可以大概分析出一阶导数算子Roberts、Prewitt、Sobel和二阶导数算子Laplace,LOG,Canny等各个算子的边缘检测效果及抗噪能力。
表一:各经典边缘算子的比较[12-13]
Prewitt算子和Sobel算子都是一阶的微分算子,而前者是平均滤波,后者是加权平均滤波且检测的图像边缘可能大于2个像素,这两者对灰度渐变低噪声的图像有较好的检测效果,但对于混合多复杂噪声的图像,处理效果则不理想。
Sobel 边缘检测的图像纹理较清楚,但整个图像过于模糊。
Roberts 边缘检测和Prewitt 边缘检测效果相似,轮廓清楚,但纹理有待提高。
Laplace 边缘检测的效果较为适中。
对于LOG算子,检测使用率并不多。
而Canny算子是满足一定优化条件的算子,边缘定位精度准确,抗噪能力强。
2.7 本章小结
本章主要介绍了常用的经典图像边缘检测算子,Roberts,sobel,prewitt,log,canny等算子,分析了各个算子的不同原理以及优缺点,为下文在使用合适恰当的边缘检测算子上奠定了良好的基础,方便了边缘检测的后续处理。
第三章二值形态学基本方法
形态学是一门新兴科学,它的用途主要是获取物体拓扑和结果信息,它通过物体和结构元素相互作用的某些运算,得到物体更本质的形态。
二值形态学是图像处理和模式识别的新方法,实质是选取特定的结构元素与被提取的图像进行对应,从而达到对图像进行分析和识别的目的。
二值图像是一种简单的图像格式,它只有两个灰度级,即"0"表示黑色的像素点,"255"表示白色的像素点,二值图像的基本运算很简单,却可以产生复杂的效果,二值图像处理时数学形态处理中重要的基础。
对获得的二值图像进行再处理,方便了图像的后续识别处理[13]。
形态学运算主要以腐蚀、膨胀、细化、开运算和闭运算等等为主,综合使用四种运算,即可提高图像处理的准确精度,降低伪边缘出现的概率。
3.1 形态学运算
3.1.1 二值腐蚀
集合A被集合B腐蚀,表示为 AΘB,其定义为
AΘB={x:B+x ⊂ A} (3.1)
其中A称为输入图像,B为结构元素。
由将B平移x仍包含在A的所有点x组成。
如果将B看作模板,那么AΘB则由在将模板平移的过程中,所有可以填入A部的模板的原点组成,如图所示。
图3-1 腐蚀示意图
腐蚀运算的目的是消除物体边界点,通过选取合适的结构元素,则可以消除小且无意义的物体,减少噪声的干扰。
对于结构元素的选取,结构元素决定了形态学图像形
态分析的性能。
形状可分为对称与不对称,尺寸则要符合 R= (r-1 )×k+1。
R大结构元素半径,r小结构元素半径,k计算次数[14]。
3.1.2 二值膨胀
膨胀是腐蚀运算的对偶运算,可以通过对补集的腐蚀来定义。
我们以c A表示集合A
的补集,B
∨
表示B关于坐标原点的反射。
那么集合A被集合B膨胀,其定义:
A ⊕ B=[]
c c
A B
∨
Θ
(3.2)
腐蚀结果的补集,便是所求的结果,如图一所示。
图3-2 膨胀示意图
膨胀运算的作用是把图像周围的背景合并在物体中,若两个物体之间的距离比较近,则该运算可以使两个物体联通起来,除此之外,膨胀运算还能够对物体分割后有效的填补空洞[15]。
3.1.3二值开运算
在形态学图像处理中,除了腐蚀和膨胀这两种基本运算之外,还有两种二次运算起着非常重要的作用,即开运算[16]及闭运算。
从结构元素填充的角度看,它具有更为直观的几何形式。
假设A仍为输入图像,B为结构元素,利用B对A作开运算,用符号A o B表示,其定义为:
(3.3)
开运算实际上是A先被B腐蚀,然后再被B膨胀的结果。
开运算可以消除小物体,平滑较大物体的边界,最重要的是不改变物体的形状[15]。
图3-3 利用圆盘作开运算
3.1.4 二值闭运算
闭运算[16]是开运算的对偶运算,定义为先作膨胀后作腐蚀。
用符号A·B表示,其定义为:
(3.4)
闭运算是具有延伸性的运算。
下图描述了闭运算的过程及结果。
图3-4 利用圆盘作闭运算
开运算与闭运算是一种对偶变换,开运算具有磨光图像外边界的作用,闭运算具有磨光图像边界的作用。
这两种运算所处理的信息分别与图像的凹凸性相关,值得一提的是,他们是单边算子。
3.2形态学操作
形态学操作一般包括骨架化操作,填充操作,边界提取操作等。
(1)骨架化操作:针对一幅图像,希望将图像中所有的对象简化成线条,但不修改图像的基本结构,保留图像的基本轮廓,即骨架化操作。
骨架化操作(bwmorph )就是将图像细化的过程。
(2)填充操作(imfill ):一种根据像素边界求取像素区域的操作,能够有效的删
除人为留下的痕迹。
(3)边界提取操作(bwperim):获得外部的轮廓特征,掏空部点,如果原图有一点为黑,且它的8个相邻点都是黑色时,则该点删除,相当于原图像减去腐蚀图像[15,17]。
程序实现:
BW1=imread('C:\Users\asus\Desktop\设计\b.jpg');
BW1=rgb2gray(BW1);
BW1=im2bw(BW1);
BW2 = bwmorph(BW1,'skel',Inf);
figure(1)
imshow(BW1) ; title('原始图像');
figure(2)
imshow(BW2) ; title('骨架提取后的图像')
***
BW = im2bw(imread('coins.png'));
figure
imshow(BW);
BW0=imfill(BW,'holes'); %填洞操作
figure
imshow(BW0);
BW1 =bwperim(BW);
figure
imshow(BW1);
title('边缘提取')
显示结果如下图3-5
)(B X X B X Θ-=⊗
原始图像
骨架提取后的图像
(a ) 骨架化图像
(b )填充处理
(c ) 边界操作
图3-5 骨架,填充,边界操作
3.3 本章小结
本章主要介绍了二值形态学的概念,二值形态学的基本运算方法(二值腐蚀,二
值膨胀,二值开运算,二值闭运算),二值形态学的操作处理(骨架化操作,填充操作,边界提取)。
通过本章的介绍,对于图像的处理,经过基本运算的结合,即可实现对图像更精度的处理。
第四章 二值形态学在图像边缘检测中的应用
4.1检测思路
对于一幅图像,通常的边缘检测是依据微分算子进行卷积实现的,如Sobel ,Canny 算子。
然而对于一个实际信号都是有噪声的,基于微分边缘检测则会引起假边缘点,从而造成图像的失真,提取的边缘存在伪边缘,平滑效果差,边缘定位精度差。
二值形态学的数学基础是集合论,具备完备的图像数据。
二值形态学就是利用灰度图像和二值图像之间的密切关系,从而简化图像数据,在保持图像的基本形状的特性同时可以去掉图像中与研究无关的部分,完成对图像的增强对比,噪声消除,细化,骨架化,填充和边缘提取操作,为形态学用于图像边缘检测提供了基础。
对于一般图像,两个灰度已足够用于研究图像的形状。
利用二值形态学进行边缘检测提取首先必须选取合适的微分算子对图像求取其梯度或二阶偏导数的零点,初步检测到边界,即为接下来的形态学处理提供基础。
结合第二章表一以及各种算子对目标图像的处理的实现,Canny算子检测效果最佳,即本文采取Canny算子进行初步的边缘检测。
图像通过一系列二值形态学运算处理后,对于图像边界可以采用4邻接或8邻接对图像中的连通区域进行搜索,标定。
4邻接连通区域的概念是该区域中的每个象素,其上下左右的4个相邻象素至少有一个像素仍然属于该区域;8连接连通区域的定义是该区域的每个像素,其所有8个方向的8个相邻中至少有一个像素仍然属于该区域。
以8邻接连通域判据对图像进行处理,可以将图像划分4邻接判据数目少的连通区域[18]。
4邻接 8邻接
(a)(b)。