chapter17图像腐蚀膨胀(一)

膨胀腐蚀概述:
膨胀、腐蚀属于形态学的操作, 简单来说就是基于形状的一系列图像处理操作
膨胀腐蚀是基于高亮部分(白色)操作的,膨胀是対高亮部分进行膨胀,类似“领域扩张”,腐蚀是高亮部分被腐蚀,类似“领域被蚕食”
膨胀腐蚀的应用和功能:  

    消除噪声

   分割独立元素或连接相邻元素

   寻找图像中的明显极大值、极小值区域

   求图像的梯度

其他相关:

    开运算、闭运算

   帽、黒帽

   形态学梯度  

1)膨胀---dilate()

    膨胀就是求局部最大值的操作,从数学角度上来讲,膨胀或腐蚀就是将图像(或区域)A

与核B进行卷积。

   核可以是任意大小和形状, 它有一个独立定义的参考点(锚点), 多数情况下,

核是一个小的中间带参考点和实心正方形或者圆盘,可以看做是一个模板或掩码。

    膨胀是求局部最大值的操做, 核B与图形卷积,即核B覆盖的区域的像素点的最大值,

并把这个最大值复制给参考点指定的像素,这样就会使图像中的高亮区域逐渐增长,

如下图所示:



函数原型



src:输入原图像(建议为二值图)

dst:输出图像要求和src一样的尺寸和类型

kernel:膨胀操作的核,当为NULL,表示使用参考点位于中心的3x3的核

    一般使用getStructuringElement获得指定形状和尺寸的结构元素()


可选以下三种形状: 矩形、交叉形、椭圆形

    ksize和anchor分别表示内核尺寸和锚点位置

anchor:锚的位置,默认值Point(-1,-1),表示位于中心
interations:膨胀的次数
borderType:边界模式,一般采用默认值
borderValue:边界值,一般采用默认值

2)腐蚀---erode()

腐蚀和膨胀相反,是取局部最小值,高亮区域逐渐减小,如下图所示


函数原型:


#include"opencv2/opencv.hpp"
using namespace cv;
 
void main()
{
	Mat src = imread("1.jpg");
	Mat dst1, dst2;
	Mat element = getStructuringElement(MORPH_RECT,Size(9,9));
	dilate(src,dst1,element,Point(-1,-1),1,BORDER_CONSTANT);
	erode(src,dst2,element,Point(-1,-1),2);
	imshow("原图",src);
	imshow("膨胀后图像",dst1);
	imshow("腐蚀后图像",dst2);
	waitKey(0);

}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值