膨胀、腐蚀、开、闭运算是数学形态学最基本的变换。

形态学通常用于二值图像。

一。膨胀与腐蚀能够实现以下作用:

1.消除噪声

2.分割出独立的图像元素,在图像中连接相邻的元素

3.寻找图像中的明显的极大值区域或者极小值区域

4.求出图像的梯度

需要注意之处: 腐蚀和膨胀都是对图像的白色部分(高亮部分)而言。

膨胀---是图像中的高亮部分进行膨胀,类似于领域扩张,效果图拥有比原图更大的高亮区域;

腐蚀---是原图的高亮部分被腐蚀,类似于领域被蚕食,效果图拥有比原图更小的高亮区域。

从数学的角度来说,膨胀和腐蚀操作就是将图像与核进行卷积,核可以是任意形状和大小的。核大,则周围对其影响大,变化大,核小,则周围对其影响小,变化小。

*膨胀(dilate)

把二值图像各1像素连接成分的边界扩大一层(填充边缘或0像素内部的孔);

膨胀就是求局部最大值的操作。核B与图像卷积,即计算核B覆盖的区域的像素点的最大值,并把这个最大值赋值给参考点指定的像素。这样就会使图像中高亮区域逐渐增长。

以下是膨胀操作的示意图:

*腐蚀(erode)

把二值图像各1像素连接成分的边界点去掉从而缩小一层(可提取骨干信息,去掉毛刺,去掉孤立的0像素);

腐蚀就是求局部最小值的操作。核B与图像卷积,即计算核B覆盖的区域的像素点的最小值,并把这个最小值赋值给参考点指定的像素。这样就会使图像中高亮区域逐渐减少。

以下是腐蚀操作的示意图:

更加高级的形态学变换

运用膨胀和腐蚀这两个基本操作,可实现较高级的形态学变换,如 开运算,闭运算,形态学梯度,顶帽,黑帽。

*开运算(opening Operation)

开运算其实就是先腐蚀再膨胀(个人理解:此操作偏向腐蚀的作用,例如有毛刺的图像,腐蚀后毛刺没有,膨胀也不会产生毛刺)

数学表达式:dist = open(src,element) = dilate(erode(src,element))

开运算可以用来可以去掉目标外的孤立点,消除小物体,在纤细处分离物体,并且在平滑较大物体的边界的同时不明显改变其面积。

*闭运算(closing Operation)

闭运算其实就是先膨胀再腐蚀(个人理解:此操作偏向膨胀的作用,例如有毛刺的图像,膨胀后毛刺加粗,膨腐蚀也不会消除毛刺)

数学表达式: dist = close(src,element) = erode(dilate(src,element))

闭运算能够可以去掉目标内的孔,排除小型黑洞(黑色区域)。

*形态学梯度(morphological Gradient)

形态学梯度就是膨胀图与腐蚀图之差,

数学表达式: dist = morph-grad(src,element) = dilate(src,element) - erode(src,element)

对二值图像进行这一操作,可以将团块的边缘突出出来(膨胀(扩充边缘图)—腐蚀(缩减边缘图)=轮廓的环状边缘),我们可以用形态梯度来保留物体的边缘轮廓

*顶帽(top Hat)

顶帽就是原图与开运算图之差,

数学表达式: dist = tophat(src,element) = src - open(src,element)

因为开运算带来的结果是:放大了裂痕或者局部低亮度的区域。因此,从原图中减去开运算后的图,得到的效果图突出了比原图轮廓周围的区域更明亮的区域,且这一操作与选择的核的大小有关。

顶帽运算往往用来分离比邻近点亮一些的斑块,在一幅图像具有大幅的背景,而微小物品比较有规律的情况下,可以使用顶帽运算进行背景提取。

*黑帽(black Hat)

黑帽就是原图与闭运算图之差

数学表达式: dist = blackhat(src,element) = close(src,element)  - src

黑帽运算后的效果图突出了比原图轮廓周围的区域更暗的区域,且这一操作与核的大小有关。

黑帽运算用来分离比临近点暗一点的斑块,效果图有着非常完美的轮廓

数学形态学在图像处理中的主要应用包括:边缘检测、图像分割、形态骨架提取、噪声滤除。

选取结构元素的方法:多结构元素、遗传算法。

二、 二值图像的腐蚀操作

1. 结构的原点设置在结构的内部情况举例

  •  
    图中左侧(a)为原图像,右侧(b)为结构元素。

    • 第一步 拿结构元素第一次完全匹配原图(右侧为输出图像)
    •        

    • 第二步 然后我们根据原点在原图像中的位置,在输出图像上完全对应的位置上涂黑,即输出图像更变为 

    • 第三步 在原图中寻找下一个完全和结构元素匹配部分,即 

    • 第四步 根据此刻结构元素的原点在原图像上的位置,在输出图像相同的位置上涂黑,即

    • 第五步 寻找完毕,操作完毕。

2. 结构的原点设置在结构的外部情况举例

  •  
    左侧为原图,右侧为结构元素,注意,这里的结构元素的原点不在结构元素内部。

  • 第一步 拿结构元素第一次完全匹配原图(右侧为输出图像) 

  • 第二步 根据结构元素的原点在原图中的位置,我们再输出图像相应的位置涂黑,即 

  • 第三步 在原图中寻找下一个完全和结构元素匹配部分,即 

  • 第四步 根据此刻结构元素的原点在原图像上的位置,在输出图像相同的位置上涂黑,即 

  • 第五步 寻找完毕,操作完毕。

膨胀的原理应该是用结构的原点遍历所有原图中的背景点,看结构与原图中的前景点有没有重叠的部分,若有重叠的部分,则标记原图中的该背景点,使之成为新的前景点

膨胀、腐蚀、开、闭运算——数字图像处理中的形态学相关推荐

  1. C语言二值图的腐蚀膨胀及开闭运算

    (M2C系列)C语言二值图的形态学腐蚀膨胀及开闭运算 一.结构元 二.腐蚀 三.膨胀 四.开闭运算 五.其他 by HPC_ZY 由于剧情,需要纯C(不用三方库)实现图像算法.但作为一名MATLAB老 ...

  2. Open_CV形态学运算专题 (腐蚀膨胀、开闭运算、梯度运算、顶帽运算黑帽运算 )【Python-Open_CV系列(十)】

      Open_CV形态学运算专题 之 腐蚀&膨胀.开&闭运算.梯度运算.顶帽运算黑帽运算               [Python-Open_CV系列(十)]   文章目录 1. 腐 ...

  3. opencv 腐蚀 matlab,Opencv3编程入门笔记(4)腐蚀、膨胀、开闭运算、漫水填充、金字塔、阈值化、霍夫变换...

    19      腐蚀erode.膨胀dilate 腐蚀和膨胀是针对图像中的白色部分(高亮部分)而言的,不是黑色的.除了输入输出图像外,还需传入模板算子element,opencv中有三种可以选择:矩形 ...

  4. opencv 实现图像形态学操作 膨胀和腐蚀 开闭运算 形态学梯度 顶帽和黑帽

    图像膨胀和腐蚀 图解 原理及python实现 更多内容:图像膨胀和腐蚀原理及python实现 opencv中膨胀和腐蚀函数 dilation = cv.dilate(img, kernel) # 膨胀 ...

  5. 图像形态学变换 膨胀和腐蚀 开闭运算 边缘检测 opencv实现

    一. 官方文档: dilate(膨胀): 函数原型 ↑ 参数说明 ↑ cv.erode(腐蚀)的使用和其类似. 二. 实验:膨胀和腐蚀 # Writer : wojianxinygcl@163.com ...

  6. [图像形态学操作]——腐蚀和膨胀、开闭运算、黑帽礼帽

    形态学转换是基于图像形状的一些简单操作,它通常在二进制图像上执行.腐蚀和膨胀是两个基本的形态学运算符.然后它的变体形式如:开运算.闭运算.礼帽黑帽等. 一.连通性 在图像学当中,图像的最小单位是像素, ...

  7. python+OpenCv笔记(七):图像的形态学操作(腐蚀与膨胀、开闭运算、礼帽与黑帽)

    一.腐蚀与膨胀 腐蚀就是原图中高亮的部分被蚕食,效果图拥有比原图更小的高亮区域. 腐蚀的作用是:消除物体边界点,使目标缩小,可以消除小于结构元素的噪声点. 膨胀就是使原图中高亮的部分扩张,效果图拥有比 ...

  8. 开运算和闭运算_OpenCV计算机视觉学习(5)——形态学处理(腐蚀膨胀,开闭运算,礼帽黑帽,边缘检测)...

    Fly-AI竞赛服务平台 flyai.com 在开始学习之前推荐大家可以多在FlyAI竞赛服务平台多参加训练和竞赛,以此来提升自己的能力.FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站 ...

  9. 8、灰度图的腐蚀、膨胀、开闭运算、顶帽底帽

    1. 灰度图的腐蚀 用结构元素的中心点,从左到右从上到下,依次扫描灰度图的像素点,图片上该像素点的值取为结构元素所覆盖区域中像素点的 最小值,扫描一遍后会得到一张新图,就是原图的腐蚀图. 用该结构元素 ...

  10. 腐蚀,膨胀,开闭运算 处理图片中的噪声点

    通过形态学过滤图片中的噪声点 以小代价,在目标检测的基础上引入了语义分割的分支,让机器人在检测脏东西的同时,区别出可行驶区域,因此有必要对粗的语义分割结果进行处理,这里使用了图形形态学中的腐蚀,膨胀, ...

最新文章

  1. 基于大数据的Uber数据实时监控(Prat 3:使用Vert.x的实时仪表盘)
  2. Visual Transformers: Token-based Image Representation and Processing for Computer Vision
  3. 十一Python之路,Day6 - 面向对象学习
  4. python百度云资源-Python开发视频百度云分享
  5. list乘法复制带来的坑
  6. 分布式一致性与共识算法
  7. 29final关键字
  8. Pattern of Patterns
  9. [Jarvis OJ - PWN]——Backdoor
  10. Android 工程的创建
  11. 如何设置 jqplot 图表插件的标题图例和直线
  12. OpenCV4每日一练day10:图像校正
  13. 魔鬼一样的二分查找模板
  14. EL表达式判断条件要写在${}内
  15. telnet登陆入门
  16. ImageLoader----内存缓存
  17. 云计算基础架构即服务、平台即服务、软件即服务的三种服务类型的介绍
  18. Qt 局域网聊天(功能完善,界面美观,免费下载)
  19. 代码 羊角螺旋_机电设计中的数学之美——羊角螺旋让你平稳过弯
  20. 油气蒸汽发生器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)

热门文章

  1. 部署KMS激活后用户端一些情况的确认
  2. [AppScan深入浅出]修复漏洞:会话标识未更新
  3. 第一次冲刺-个人工作总结06
  4. 设计模式学习笔记—策略模式
  5. OSWatcher使用简介
  6. 【USACO】sprime
  7. linux UVC and hardware viewer
  8. 从远程服务器中下载文件到本地
  9. A+B Problem(再升级)
  10. OpenCL编程基本流程及完整示例