Matlab基于腐蚀和膨胀的边缘检测.doc

Matlab基于腐蚀和膨胀的边缘检测.doc

ID:59120415

大小:349.00 KB

页数:13页

时间:2020-09-15

Matlab基于腐蚀和膨胀的边缘检测.doc_第1页
Matlab基于腐蚀和膨胀的边缘检测.doc_第2页
Matlab基于腐蚀和膨胀的边缘检测.doc_第3页
Matlab基于腐蚀和膨胀的边缘检测.doc_第4页
Matlab基于腐蚀和膨胀的边缘检测.doc_第5页
资源描述:

《Matlab基于腐蚀和膨胀的边缘检测.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Matlab基于腐蚀和膨胀的边缘检测2010年07月22日星期四16:15腐蚀:删除对象边界某些像素。膨胀:给图像中的对象边界添加像素。在操作中,输出图像中所有给定像素的状态都是通过对输入图像的相应像素及邻域使用一定的规则进行确定。在膨胀操作时,输出像素值是输入图像相应像素邻域内所有像素的最大值。在二进制图像中,如果任何像素值为1,那么对应的输出像素值为1;而在腐蚀操作中,输出像素值是输入图像相应像素邻域内所有像素的最小值。在二进制图像中,如果任何一个像素值为0,那么对应的输出像素值为0。结构元素的原点定义在对输入图像感兴趣的位置。对于图像边缘的像素,由结构元素定义的邻域将会有一部分位

2、于图像边界之外。为了有效处理边界像素,进行形态学运算的函数通常都会给出超出图像、未指定数值的像素指定一个数值,这样就类似于函数给图像填充了额外的行和列。对于膨胀和腐蚀操作,它们对像素进行填充的值是不同的。对于二进制图像和灰度图像,膨胀和腐蚀操作使用的填充方法如下表:腐蚀和膨胀填充图像规则表规则腐蚀超出图像边界的像素值定义为该数据类型允许的最大值,对于二进制图像,这些像素值设置为1;对于灰度图像,unit8类型的最小值也为255。膨胀超出图像边界的像素值定义为该数据类型允许的最小值,对于二进制图像,这些像素值设置为0;对于灰度图像,unit8类型的最小值也为0。通过对膨胀操作使用最小值填

3、充和对腐蚀操作使用最大值填充,可以有效地消除边界效应(输出图像靠近边界处的区域与图像其它部分不连续)。否则,如果腐蚀操作使用最小值进行填充,则进行腐蚀操作后,输出图像会围绕着一个黑色边框。结构元素:膨胀和腐蚀操作的最基本组成部分,用于测试输出图像,通常要比待处理的图像小的多。二维平面结构元素由一个数值为0或1的矩阵组成。结构元素的原点指定了图像中需要处理的像素范围,结构元素中数值为1的点决定结构元素的邻域像素在进行膨胀或腐蚀操作时是否需要参与计算。三维或非平面的结构元素使用0,1定义结构元素在x和y平面上的范围,第三维z定义高度。(1)任意大小和维数的结构元素B原点坐标的获取:>>or

4、igin=floor((size(nhood)+1)/2)其中nhood是指结构元素定义的邻域(STREL对象的属性nhood)(2)创建结构元素:(strel函数来创建任意大小和形状的STREL对象,支持如线形line、钻石形diamond、圆盘形disk、球形ball等许多种常用的形状)>>se=strel('diamond',3)se=FlatSTRELobjectcontaining25neighbors.Decomposition:3STRELobjectscontainingatotalof13neighborsNeighborhood:000100000111000111

5、1101111111011111000111000001000%se返回了结构元素的有关信息。(3)结构元素的分解为了提高执行效率,stel函数可能会将结构元素拆为较小的块,这种技术称为结构元素的分解。例如要对一个11×11的正方形结构元素进行膨胀操作,可以首先对1×11的结构元素进行膨胀操作,然后再对11×1的结构元素进行膨胀,通过这样的分解,在理论上可以使执行速度提高6.5倍。对圆盘形和球形结构元素进行分解,其结构是近似的,而对于其他形状的分解,得到的分解结果是精确的。可以调用getsequence函数来查看分解所得的结构元素序列。>>seq=getsequence(sel)seq

6、=4x1arrayofSTRELobjects>>seq(1)ans=FlatSTRELobjectcontaining5neighbors.Neighborhood:010111010>>seq(2)ans=FlatSTRELobjectcontaining4neighbors.Neighborhood:010101010>>seq(3)ans=FlatSTRELobjectcontaining4neighbors.Neighborhood:0010000000100010000000100>>seq(4)ans=FlatSTRELobjectcontaining4neighbors

7、.Neighborhood:0101010101.图像膨胀的Matlab实现:可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。结构元素对象可以是strel函数返回的对象,也可以是一个自己定义的表示结构元素邻域的二进制矩阵。此外,imdilate还可以接受两个可选参数:PADOPT(padopt)——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。