图像的形态学操作



一、基本的形态学操作

简单来讲,形态学操作就是基于形状的一系列图像处理操作。通过将 结构元素 作用于输入图像来产生输出图像。
最典型的两种操作,是腐蚀及其膨胀操作。

膨胀: 它是取每一个位置的矩形领域内值的最大值作为该位置的输出灰度值,注意白色的灰度值最大,故使白色区域变大
腐蚀: 它是取每一个位置的矩形领域内值的最小值作为该位置的输出灰度值,故其使灰色区域最大

Mat element = getStructuringElement( dilation_type,
                                       Size( 2*dilation_size + 1, 2*dilation_size+1 ),
                                       Point( dilation_size, dilation_size ) );

  dilate( src, dilation_dst, element );  // 膨胀操作
  erode( src, dilation_dst, element );//腐蚀操作

二、复合的形态学操作

下面是开和闭运算:
开运算:dilate(erode());白色面积先变小,再增大白色
闭运算: erode(dilate());白色面积先变大,再变小,

当图像的前景更亮,背景更暗时:
开运算是去除细小孤立点,断开连接桥(当噪声强度高,发白);闭运算是指连接两者中微小的间隙(可以去除黑色噪点)。

形态学梯度:膨胀-腐蚀,去掉填充部分,得到轮廓线(这里是指基本梯度,内部梯度为原图-腐蚀,外部梯度为膨胀-原图)

顶帽:原图像-开运算,突出原图轮廓区域附近更亮的区域。让亮的更亮;

黑帽:闭运算-原图像 通过与原图做差,突出原图轮廓区域附近更暗的区域。让暗的更亮。
(所谓突出,就是被突出者均以白色进行显示。)

二、相关代码

使用扩展的形态学函数

运行指定形态学操作:

  morphologyEx( src, dst, operation, element );
  imshow( window_name, dst );
}

运行形态学操作的核心函数是 morphologyEx 。在本例中,我们使用了4个参数(其余使用默认值):
src : 原 (输入) 图像
dst: 输出图像
operation: 需要运行的形态学操作。 我们有5个选项:
Opening: MORPH_OPEN : 2
Closing: MORPH_CLOSE: 3
Gradient: MORPH_GRADIENT: 4
Top Hat: MORPH_TOPHAT: 5
Black Hat: MORPH_BLACKHAT: 6

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颢师傅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值