matlab腐蚀膨胀代码_(三十二)形态学----膨胀和腐蚀

54e171fc4e2893aade4cc78e64b16fae.png

时间为友,记录点滴。

我们在《初始滤波之均值滤波》中有聊过滤波的本质,以及介绍了其中一种线性滤波(均值滤波)。对于常见的非线性滤波“中值滤波”也在《视频的读取和处理》中有介绍。今天我们来介绍另外两种滤波方式:

  • 最大值滤波
  • 最小值滤波

再了解这两种滤波之前,我们先来看一些概念。

啥是形态学?

简单来讲,形态学操作就是基于形状的一系列图像处理操作。通过将结构元素作用于输入图像来产生输出图像。

有啥作用?

常用的形态学处理方法包括:腐蚀、膨胀、开运算、闭运算、顶帽运算、底帽运算,其中膨胀腐蚀是图像处理中最常用的形态学操作手段,其他方法是两者相互组合而产生的。

膨胀和腐蚀的运用广泛:

  • 消除噪声
  • 分割(isolate)独立的图像元素,以及连接(join)相邻的元素。
  • 寻找图像中的明显的极大值区域或极小值区域。
如何实现?

我们可以想象跟卷积类似,首先选取一个结构元素(我们以3*3的矩形核为例),并且定义其锚定点(以重心为例),结构元素覆盖的部分。

以结构元素的最小值填充锚定点的做法为腐蚀

以结构元素的最大值填充锚定点的做法为膨胀

92e5fcee3349ca0b2e3d644c43064774.png
是不是变相的滤波?

OpenCV的大全,这种API肯定少不了啊。

膨胀:

CV_EXPORTS_W 
  • src 输入图像,任意通道的。深度可为CV_8U、CV_16U、CV_16S、CV_32F或CV_64F。
  • dst 输出图像,类型与通道数目必须跟输入保持一致
  • kernel 结构元素, 如果kernel=Mat()则为设定的3×3矩形。
  • anchor 锚定位置,默认中心位置。
  • iterations 循环次数
  • borderType 边缘填充类型(不用关心,使用默认值)

腐蚀:

CV_EXPORTS_W 
  • src 输入图像,任意通道的
  • dst 输出图像,类型与通道数目必须跟输入保持一致
  • kernel 结构元素
  • anchor 中心位置锚定
  • iterations 循环次数
  • borderType 边缘填充类型(不用关心,使用默认值)

获取结构元素:

CV_EXPORTS_W 
  • shape:表示内核的形状,有三种形状可以选择。
    • 矩形:MORPH_RECT;
    • 交叉形:MORPH_CROSS;
    • 椭圆形:MORPH_ELLIPSE;
  • ksize 是指结构元素大小
  • anchor 中心锚点的位置

看起来很简单,还是用代码来实践一下把。

C++

1. dilate和erode的后面几个参数都可以选用默认值
2. Kernel的选择要用getStructuringElement,参数选择有讲究
#include 

0ee15218cd1d09d322484a1703667f72.png

739f19ec53ead1faafb5f5007d068256.png
可以通过文件观察最大、最小值的替换

Python:

#!/usr/bin/env python
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值