小白学冈萨雷斯数字图像处理——第九章:形态学图像处理

注:笔者水平有限,此博客目的为学习记录,方便以后复习。

9.1 预备知识

本节介绍一些集合理论中的基本概念,并讨论MATLAB的逻辑运算符对于二值图像的应用。

9.1.1 集合论中的基本概念

若(x,y)是Z^2中的整数,f是为每对不同的坐标(x,y)分配亮度值(即来源于实数集R中的实数)的映射,则函数f(x,y)称为数字图像

除去基本的交并运算外,形态学运算中通常还需要两个运算符,这两个运算符是特别针对于元素均为像素坐标的集合的,定义如下:
在这里插入图片描述

9.1.2 二值图像、集合和逻辑运算符

一副二值图像可以看成是x,y的二值函数,形态学理论中把二值图像看成是其前景像素的集合(1值)。二值图像间可以进行集合的交并运算,之后仍为二值图像;若A和B中的像素为前景像素,运算后仍为前景像素。

在这里插入图片描述

9.2 膨胀和腐蚀

9.2.1 膨胀

膨胀是在二值图像中“加长”或“变粗”的操作。这种特殊的方式和变粗的程度由一个称为结构元素的集合控制。

膨胀运算的过程如下:结构元素的原点必须标明,之后,将该结构元素的原点在原图像上平移,元素内有1与原图像中的1重合时,结构元素原点所在的点变为1值。

在这里插入图片描述
数学上,膨胀定义为集合运算
在这里插入图片描述
可使用imdilate()函数执行膨胀运算

A2 = imdilate(A,B);

膨胀可应用于图像增强:
在这里插入图片描述

9.2.2 膨胀元素的分解

膨胀满足结合律,因此,结构元素可以进行分解。又因为计算膨胀所需要的时间正比于结构元素中非零元素的个数,因而可以通过对结构元素进行分解减少运算时间。

例如,一个55的全1结构元素,可以分解为15的全1结构元素与5*1的全1结构元素相膨胀,速度可提升约2.5倍。

9.2.3 函数strel

函数strel用于构造各种形状和大小的结构元素,其基本语法为:

se = strel(shape,parameters)

其中,shape是指定希望形状的字符串,parameters是指定形状信息(如大小)的一列参数。

在这里插入图片描述
在这里插入图片描述
strel不显示通常的MATLAB矩阵,而是返回一个称为strel对象的特殊量,显示其邻域、结构元素中值为1的像素数、分解中的结构元素数以及分解中的结构元素中值为1的总像素数。函数getsequence可用于提取并检查分解其中的单个结构元素。

decomp = getsequence(se);

strel型对象,在imdilate处理过程中会自动使用分解信息来加快膨胀过程。

9.2.4 腐蚀

腐蚀“收缩”或“细化”二值图像中的对象。收缩同样由一个结构元素控制。

其运算过程如下图所示:即只有完全匹配是才为1,否则置0。
在这里插入图片描述
腐蚀的数学定义如下:
在这里插入图片描述
腐蚀用函数imerode来实现。当我们想要去除图像中的细线,但想保留其他结构时,可以通过选取一个足够小的结构元素来匹配中心方块实现。

在这里插入图片描述

9.3 膨胀与腐蚀的组合

9.3.1 开运算和闭运算

A被B形态学开运算:A被B腐蚀后再用B来膨胀得到的腐蚀结果,即:
在这里插入图片描述
**应用:**形态学开运算完全删除了不能包含结构元素的对象区域,平滑了对象的轮廓,断开了狭窄的连接,去掉了细小的突出部分。

A被B的形态学闭运算与开运算相反,即先膨胀再腐蚀。

应用:形态学闭运算也会平滑对象的轮廓,但一般会将狭窄的缺口连接起来形成细长的弯口,并填充比结构元素小的洞。

形态学开运算与闭运算可用MATLAB工具箱函数imopen imclose实现。

C1 = imopen(A,B);
C2 = imclose(A,B);

A是一副二值图像,B可用strel生成。

应用:

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值