Matlab中的bwmorph函数解释

bwmorph:对二值图像的形态学操作。

BW2 = bwmorph(BW,operation)

BW2 =bwmorph(BW,operation,n)

BW2 = bwmorph(BW,operation)对二值图像应用形态学操作。

BW2 = bwmorph(BW,operation,n)应用形态学操作n次,n可以是Inf,这种情况下该操作被重复执行直到图像不再发生变化为止。

Operation是以下的字符串:

Operation

Description

'bothat'

是形态学上的“底帽”变换操作,返回的图像是原图减去形态学闭操作处理后的图像(闭操作:先膨胀再腐蚀)

'bridge'

连接断开的像素。也就是将0值像素置1如果他有两个非零的不相连(8邻域)的像素,比如:

1 0 0                                            1 1 0

1 0 1   经过bridge连接后变为  1 1 1

0 0 1                              0 1 1

'clean'

移除孤立的像素(被0包围的1)。比如下面这个模型的中心像素:

0 0 0

0 1 0

0 0 0

'close'

执行形态学闭操作(先膨胀后腐蚀)

'diag'

利用对角线填充来消除背景中的8连通区域。比如:

0 1 0                                 1 1 0

1 0 0      经过diag变成   1 1 0

0 0 0                                 0 0 0

'dilate'

利用结构ones(3)执行膨胀操作。

'erode'

利用结构ones(3)执行腐蚀操作。

'fill'

填充孤立的内部像素(被1包围的0),比如下面模型的中心像素:

1 1 1

1 0 1

1 1 1

'hbreak'

移除H连通的像素,例如:

1 1 1                          1 1 1

0 1 0            变成          0 0 0

1 1 1                          1 1 1

'majority'

将某一像素置1如果该像素的3×3邻域中至少有5个像素为1;否则将该像素置0

'open'

执行形态学开操作(先腐蚀后膨胀)

'remove'

移除内部像素。该选项将一像素置0如果该像素的4连通邻域都为1,仅留下边缘像素。

'shrink'

n = Inf时,将目标缩成一个点。没有孔洞的目标缩成一个点,有孔洞的目标缩成一个连通环。

'skel'

n = Inf时,移除目标边界像素,但是不允许目标分隔开,保留下来的像素组合成图像的骨架。

'spur'

移除刺激(孤立)像素。比如:

0  0  0  0                   0  0  0  0

0  0  0  0                   0  0  0  0

0  0  1  0    变成       0  0  0  0

0  1  0  0                   0  1  0  0

1  1  0  0                   1  1  0  0

'thicken'

n = Inf时,通过在目标外部增加像素加厚目标直到这样做最终使先前未连接目标成为8连通域。

'thin'

n = Inf时,减薄目标成线。没有孔洞的目标缩成最低限度的连通边;有孔洞的目标缩成连通环。

'tophat'

执行形态学“顶帽”变换操作,返回的图像是原图减去形态学开操作处理之后的图像(开操作:先腐蚀再膨胀)。

对比下面简介理解

bwmorph 功能: 提取二进制图像的轮廓. 语法: BW2 = bwmorph(BW1,operation) ; BW2 = bwmorph(BW1,operation,n) ; n为次数; Operation的参数可以有多种选择,现归纳如下: ‘bothat’:闭包运算,即先腐蚀,在膨胀,然后减去原图像; ‘bridge’:做连接运算; ‘clean’:去除孤立的亮点; ‘close’:进行二值闭运算; ‘diag’:采用对角线填充来去除8邻域的背景; ‘dilate’:采用结构元素ones(3)做膨胀运算; ‘erode’:采用结构元素ones(3)作腐蚀运算; ‘fill’:填充孤立的黑点;

‘hbreak’:断开H形连接; ‘Majority’:若像素的8邻域中有大于或等于5的元素为1,则像素为1,否则为0; ‘open’:执行二值开运算; ‘remove’:去掉内点,即若像素的4邻域都为1,则像素为0; ‘shrink’n=inf:做收缩运算,这样没有孔的物体收缩为一个点,而含孔的物体收缩为一个相连的环,环的位置在孔和物体外边缘的中间,收缩运算保持欧拉数不变, ‘skel’n=inf: 提取物体的骨架,即去除物体外边缘的点,但是保持物体不发生断裂,它也保持欧拉数不变。 ‘spur’:去除物体小的分支; ‘thicken’n=inf;对物体进行粗化,即对物体的外边缘增加像素,知道原来为连接的物体按照8邻域被连接起来。粗化保持欧拉数不变。 ‘thin’n=inf:对物体进行细化,使得没有孔的物体收缩为最小连接棒,而含有孔的物体收缩为一个连接的环,同样细化保持欧拉数不变。 ‘tophat’:用原图减去开运算后的图像;

支持类: 输入图像BW1可以是数值或逻辑类型.必须是2-D,实的和非稀疏的.输出图像BW2是逻辑型的. 例子: BW1=imread('circles.png'); imview(BW1) BW2=bwmorph(BW1,'remove'); BW3=bwmorph(BW1,'skel',Inf); imview(BW2) imview(BW3)

继续加入不同表达的链接,方便理解:

案例显示:

matlab中bwmorph函数的作用,Matlab中的bwmorph函数解释相关推荐

  1. python中匿名函数的作用_Python 中的匿名函数,你会用吗

    原标题:Python 中的匿名函数,你会用吗 概念 我们从一个例子引入. 这里有一个元素为非空字符串的列表,按字符串最后一个字母将列表进行排序.如果原列表是 ['abc', 'g', 'def'],则 ...

  2. python主函数的作用_python中main函数的用法

    原博文 2020-03-27 20:25 − **什么场景下会有main函数?** 当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行. **ma ...

  3. python语言中print函数的作用_python中如何使用print函数

    Python中print语句 1.逗号分隔符 在Python中print语句可根据sys.stdout中包含的文件生成输出,它接受一个逗号分隔的对象表,如下实例:x = 1 y = 2 z = 3 p ...

  4. python匿名函数的作用_Python中的匿名函数及递归思想简析

    匿名函数 前言 上次咱们基本说了一下函数的定义及简单使用,Python中的基本函数及其常用用法简析,现在咱们整点进阶一些的.同样都是小白,咱也不知道实际需要不,但是对于函数的执行顺序以及装饰器的理解还 ...

  5. matlab里面板有什么作用,MATLAB轻松享受GPU的强大功能

    MATLAB轻松享受GPU的强大功能 MATLAB的GPU支持为活跃于许多学科的大量研究人员(不一定是CUDA编程专家)提供了一种加速科学计算的新方法.考虑到MATLAB主要是用于科学计算和工程计算, ...

  6. python中的变量的作用_Python中的变量作用域

    python中变量作用域包括: L (Local) 局部作用域,函数内部声明但没有使用global的变量 E (Enclosing) 闭包函数外的函数中,def或者lambda的本地作用域 G (Gl ...

  7. python中装饰器的作用_Python中装饰器的用法

    装饰器的作用 当我们需要为函数拓展新的功能,但是又不能修改函数的内部结构时,就可以通过装饰器来完成.通过装饰器为函数拓展功能符合"对于扩展是开放的,对于修改是封闭的"这一开闭原则. ...

  8. python中yield语句的作用_Python中关键字yield有什么作用

    python中,yield关键字的作用:1.将一个函数修改为生成器,利用生成器可以有效地节约系统资源,避免不必要的内存占用:2.用于定义上下文管理器:3.协程:4.配合from形成yield from ...

  9. java中输出时 什么作用_JAVA中输入和输出处理(Java I/O)重点总结

    文件-使用File类操作文件: 什么是文件?  文件可认为是相关记录或放在一起的数据的集合. 文件一般存储在哪里?  储存在存储设备里. Java程序如何访问文件?  Java API:java.io ...

  10. java中statement对象的作用_java中Statement 对象

    1.创建Statement对象 建立了到特定数据库的连接之后,就可用该连接发送 SQL 语句.Statement 对象用 Connection 的方法 createStatement 创建,如下列代码 ...

最新文章

  1. 免校准的电量计量芯片_万物互联,开启智慧计量新时代—2020年中国物联网计量创新发展论坛在济南举办...
  2. Android 做项目总结
  3. OpenCv中实现了三种立体匹配算法:
  4. 推荐:浏览器是怎样工作的?
  5. python redis集群_Python3 redis集群连接 (带密码验证)
  6. QT的QQmlScriptString类的使用
  7. 数据库外键约束的几种方法及区别
  8. vue .prettierrc文件常见配置, 以及配置 Prettier - Code formatter 插件 格式化
  9. 使用Typescript和React的最佳实践
  10. Kubernetes--玩转Pod滚动更新123
  11. python 怎么样去txt中提取xml_Python根据XML批量创建TXT并提取信息,python,xml,txt
  12. vue Mutation 必须是同步函数 为什么_为什么vue组件中data必须用函数表达?
  13. List工具类之List集合去重
  14. Android11.0(R) MTK user版本打开MtkLog功能
  15. 守望先锋中的netcode_如何跟踪守望先锋中的化妆品和事件物品
  16. python隐藏部分代码_python源码隐藏
  17. 移植st官方usb-hid程序出现babble detected错误
  18. unity3d学习笔记-动画(3.导入动画)
  19. 自动上传视频到B站和西瓜视频
  20. s8 android z,三星Galaxy S8领衔:2017年十佳Android智能手机

热门文章

  1. 跟我学AngularJs:AngularJs入门及第一个实例
  2. 2022年全球市场化学机械抛光(CMP)金刚石衬垫调节器总体规模、主要生产商、主要地区、产品和应用细分研究报告
  3. Android 沉浸式状态栏 一体化状态栏实现
  4. 基于深度学习lstm_基于LSTM的深度恶意软件分析
  5. 利用FFmpeg玩转Android视频录制与压缩(三)
  6. UFI 命令 返回值(UFI Command Specification)
  7. python cx_oracle 取回数据后 LOB variable no longer valid after subsequent fetch
  8. 计算机视觉:目标跟踪论文推荐
  9. 考研后悔排行榜大盘点!这些雷要尽早避开!
  10. 解决浏览器兼容新问题