opencv 膨胀和腐蚀

膨胀腐蚀是对高亮部分的操作(及大像素值)膨胀腐蚀可以消除噪声,连接相邻区域,分割独立区域,寻求区域最大最小值


膨胀的原理是通过一个核去边缘覆盖,然后取这个核的最大值,把核的其他区域用最大值替换,结果就是白色区域扩张了,对于彩色或灰度图就是图片像素变大,变得更亮

腐蚀的原理刚好与膨胀相反,腐蚀是把区域内的值用区域内的最小值代替,对于二值化图就是用0(黑)代替。



一:膨胀函数 dilate

dilate( InputArray src, OutputArray dst, InputArray kernel,   Point anchor=Point(-1,-1), int iterations=1,int borderType=BORDER_CONSTANT,  constScalar&borderValue=morphologyDefaultBorderValue() );

第三个参数是Mat类的核可以用Mat elemt=getStructuringElement(MORPH_RECT,Size(5,5),Point(-1,-1));函数得到

getStructuringElement中的第一个参数是核的形状MORPH_RECT=0--矩形, MORPH_CROSS=1--十字形, MORPH_ELLIPSE=2--椭圆

第二个参数是内核大小

第三个是锚点位置(-1,-1)表示锚点在中心

dilate函数的第四个参数是内核位置(-1,-1)表示锚点在中心,

第五个参数是腐蚀次数

其函数最后最后几个参数一般默认




二:腐蚀函数erode

其参数类型和膨胀函数的参数类型一致

erode(srcImage,dstImage,elemt);



效果图



腐蚀的有点严重线条全部不见了



三:开运算(morph_open)

开运算实质就是对图像先腐蚀再膨胀,开运算可以消除小物体,在纤细点处分离物体,并在平滑较大物体时不明显的改变面积


四:闭运算(morph_close)

闭运算时候先膨胀再腐蚀,闭运算可以消除小黑点


五:形态学梯度(gradient)

形态学梯度是膨胀图与腐蚀图只差,可以保留和突出边缘


六:顶帽(morph_tophat)

顶帽是闭运算结果与原图做差的结果,可以分离比临近点亮一些的斑块(一些大的亮斑)


七:黑帽(morph_blacktop)

黑帽是原图与开运算结果 相减的结果,可以分离比临近点暗的斑块

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值