MATLAB二值图像快速膨胀膨胀处理

    本文主要总结一下在matlab中可用于进荇轮廓提取的函数

    根据参考资料[2]的提示,可以使用bwperim()函数进行轮廓提取具体代码如下:

    原图和所提取的轮廓分别如图1和图2所示。

}

  对图1的检测效果如图3所示:

**注意:填充时轮廓线是闭合连续的

Matlab是国际上最流行的科学与工程计算的软件工具,它起源于矩阵运算已经发展成一种高度集成的计算机语訁。有人称它为“第四代”计算机语言它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化界面设计、便捷的与其它程序和语言接口的功能。随着Matlab语言功能越来越强大不断适应新的要求并提出新的解决方法,可以预见在科学运算,自动控制与科学绘圖领域Matlab语言将长期保持其独一无二的地位。

2、几种常用的边缘检测算子

边缘是图像的最重要的特征。边缘是指周围像素灰度有阶跃变囮或屋顶变化的那些像素的集合边缘检测主要是灰度变化的度量、检测和定位。有很多种不同的边缘检测方法同一种方法使用的滤波器也不尽相同。图像边缘检测就是研究更好的边缘检测方法和检测算子

边缘检测的基本思想首先是(1)利用边缘增强算子,突出图像中嘚局部边缘(2)然后定义象素的“边缘强度”,通过设置阈值的方法提取边缘点集由于噪声和模糊的存在,监测到的边界可能会变宽戓在某点处发生间断因此,边界检测包括两个基本内容:

ii.        在边缘点集合中剔除某些边界点或填补边界间断点并将这些边缘连接成完整嘚线

常用的检测算子有微分算子、拉普拉斯高斯算子和canny算子。

在Matlab图像处理工具箱中提供了edge函数利用以上算子来检测灰度图像的边缘。

   经典的边缘提取方法是考察图像的每个像素的某个邻域内灰度的变化利用边缘邻近一阶或二阶方向导数变化规律,用简单的方法检测边缘称为微分算子法

导数算子具有突出灰度变化的作用对图像运用导数算子,灰度变化较大的点处算得的值较高因此我们将图像的导數算子运算值作为相应的边界强度,所以可以通过对这些导数值设置阈值提取边界的点集。

一阶导数是最简单的导数算子已知在点f(x,y)处,梯度grad(F(x,y))的幅度为:



它们分别求出了灰度在x和y方向上的变化率但是要对每一个像素进行以上的运算,运算量较大所以在实际应用中瑺用小区域模板卷积运算来进行近似计算。模板运算的想法是将赋予某一个像素的值作为它本身灰度值和相邻象素灰度值的函数运用中,对xy方向各用一个模板。

Sobel算子是滤波算子的形式来提取边缘X,Y方向各用一个模板两个模板组合起来构成1个梯度算子。X方向模板对垂矗边缘影响最大Y方向模板对水平边缘影响最大。


   Robert算子是一种梯度算子它用交叉的差分表示梯度,是一种利用局部差分算子寻找边缘的算子对具有陡峭的低噪声的图像效果最好:


   prewitt算子是加权平均算子,对噪声有抑制作用但是像素平均相当于对图像进行地同滤波,所以prewitt算子对边缘的定位不如robert算子模板如图;

原始图像为三位编织复合材料二维截面图,对原始图像进行前期处理


   拉普拉斯高斯算子是一种二階导数算子将在边缘处产生一个陡峭的零交叉。前面介绍的几种梯度法具有方向性不能对各种走向的边缘都具有相同的增强效果。但昰Laplacian算子是各向同性的能对任何走向的界线和线条进行锐化,无方向性这是拉普拉斯算子区别于其他的最大优点。

对一个连续函数它茬位置的拉普拉斯算子定义如下:


在图像边缘检测中,为了运算方便函数的拉普拉斯高斯算子也是借助模板来实现的。其模板有一个基夲要求:模板中心的系数为正其余相邻系数为负,所有系数的和应该为零


     Canny边缘检测是一种比较新的边缘检测算子,具有很好的边缘监測性能在图像处理中得到了越来越广泛的应用。它依据图像边缘检测最优准则设计canny边缘检测算法:

(4)       一旦知道了边缘的方向就可以紦边缘的梯度方向大致分为四种:水平、竖直、45度方向、135度方向。通过梯度的方向就可以找到这个像素梯度方向的邻接像素。

(5)       遍历圖像若某个像素的灰度值与其梯度方向上前后两个像素的灰度值相比不是最大的,那么这个像素值置为0即不是边缘。

(6)       使用累计直方图计算两个阈值大于高阈值的一定是边缘,小于低阈值的一定不是边缘介于之间的,看这个像素的邻接像素中有没有超过高阈值的邊缘像素如果有的话那么它

就是边缘了,否则它就不是边缘

调用Laplacian算子、canny算子检测法检测图像边缘的程序如下:

Roberts算子检测方法对具有陡峭的低噪声的图像处理效果较好,但是利用roberts算子提取边缘的结果是边缘比较粗因此边缘的定位不是很准确。

Sobel算子检测方法对灰度渐变和噪声较多的图像处理效果较好sobel算子对边缘定位不是很准确,图像的边缘不止一个像素

Prewitt算子检测方法对灰度渐变和噪声较多的图像处理效果较好。但边缘较宽而且间断点多。

Laplacian算子法对噪声比较敏感所以很少用该算子检测边缘,而是用来判断边缘像素视为与图像的明区還是暗区

Canny方法不容易受噪声干扰,能够检测到真正的弱边缘优点在于,使用两种不同的阈值分别检测强边缘和弱边缘并且当弱边缘囷强边缘相连时,才将弱边缘包含在输出图像中

[2] 阮秋琦.数字图像处理学[M].北京:电子工业出版社,2001.

[3] 何斌.数字图像处理[M].北京:人民邮电出版社2001

(注意:代码中有一些标点是中文模式,若输入代码后标点显示红色则为中文标点,改回来就行了)


}

我要回帖

更多关于 二值图像快速膨胀 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信