OpenCvSharp 形态学操作(膨胀、腐蚀)

什么是形态学操作

用数学形态学(也称图像代数)表示以形态为基础对图像进行分析的数学工具。基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。

形态学图像处理的数学基础和所用语言是集合论。

形态学图像处理的应用可以简化图像数据,保持它们基本的形状特性,并除去不相干的结构。

形态学图像处理的基本运算有:膨胀、腐蚀、开操作和闭操作,击中与击不中变换,TOP-HAT变换,黑帽变换……

 

API:

Cv2.MorphologyEx(源图像,输出图像,形态操作类型,结构数组,锚点【中心点】,应用腐蚀和膨胀的次数【默认情况下这是1】,边缘处理方法,在边界为常数的情况下的边界值【默认情况下这是cvcp . morphologydefaultbordervalue ()】)

 

什么是开操作?

(以下处理图片的原图是经过归一化处理的,详细请看上一篇博客)

开操作:open: 先腐蚀后膨胀,可以去掉小的对象。

dst=open(src,element)=dilate(erode(src,element))

//定义结构元素
InputArray kernel = Cv2.GetStructuringElement(MorphShapes.Rect, new Size(3, 3), new Point(-1, -1));
//开操作,也可省落变量前缀名
Cv2.MorphologyEx(srcImg, srcImg, MorphTypes.Open, kernel, new Point(-1, -1), 1, BorderTypes.Constant, Scalar.Gold);

什么是闭操作?

闭操作 :close先膨胀后腐蚀,可以填充图像的噪点。

dst=Morphgrad​(src,element)=dilate(sec,element)−erode(src,element)

//定义结构元素
InputArray kernel = Cv2.GetStructuringElement(MorphShapes.Rect, new Size(3, 3), new Point(-1, -1));
//闭操作,也可省落变量前缀名
Cv2.MorphologyEx(srcImg, srcImg, MorphTypes.Close, kernel, new Point(-1, -1), 1, BorderTypes.Constant, Scalar.Gold);

可以明显看出图片中的椒盐噪声没了

 

形态学梯度:Morphological Gradient : 膨胀减去腐蚀,又称基本梯度(还包括:内部梯度,方向梯度)

dst=Morphgrad​(src,element)=dilate(sec,element)−erode(src,element)

//定义结构元素
InputArray kernel = Cv2.GetStructuringElement(MorphShapes.Rect, new Size(3, 3), new Point(-1, -1));
//形态学梯度操作,也可省落变量前缀名
Cv2.MorphologyEx(srcImg, srcImg, MorphTypes.Gradient, kernel, new Point(-1, -1), 1, BorderTypes.Constant, Scalar.Gold);

(这里和Halcon的画XLD好像…  不知道是不是一个东西)

 

 

 

**顶帽 top hat:**是原图像与开操作之间的差值操作。

MorphTypes.TopHat

  

 

**黑帽:black hat:**闭操作图像与原图像的差值图像

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值