首页 > 代码库 > 二值图像--形态学处理3 开操作和闭操作
二值图像--形态学处理3 开操作和闭操作
学习DIP第13天
开篇废话
简单来说所谓开操作和闭操作就是把腐蚀和膨胀结合起来,先腐蚀后膨胀就是开,膨胀后腐蚀就是关,至于为什么是开为什么是关,我一开始也记不住,记得老师好像也没告诉我为啥叫开,为啥叫闭,不过在下面的介绍中,会给出叫开和关的原因。
数学原理
额,公式还没准备好。。。
性质
开操作,一般会平滑物体轮廓,断开较窄的狭颈(细长的白色线条),所以叫开,并消除细小的突出物。
闭操作,一般也会平滑物体轮廓,但与开操作相反,弥合较窄的间断和细长的沟壑,所以叫闭,消除小的空洞,填补轮廓线的中的断裂。
上述中所有所谓的细,窄都是与结构元SE相比的,所以,关键还是SE。
幂等性(idempotent):就是当对同一SE对图像做开(闭)操作,做一次和做多次,结果是一样的。
代码
代码,完全是基于腐蚀和膨胀的操作,其中腐蚀和膨胀的具体实现,见上节:
//开操作 void Open(IplImage *src,IplImage *dst,IplImage *se,Position *center){ Erode(src, dst, se, center); Dilate(dst, dst, se, center); } //关操作 void Close(IplImage *src,IplImage *dst,IplImage *se,Position *center){ Dilate(src, dst, se, center); Erode(dst, dst, se, center); }
结果
以下所有结果的SE均为3x3的全为1,中心为中间元素,即SE为各向同性的。
开操作:左上为原图,左下为开操作结果,右上是开操作结果与原图的差,可以看出,细小的白色突起,细长的线条被处理掉了,而狭长的黑色沟壑被保留:
闭操作:左上为原图,左下为闭操作结果,右上为原图与闭操作结果的差。可以看出,原图中的黑色细条(即黑色沟壑)被填充,但白色突起点被保留。
下面对以100为阈值处理的lenna图进行操作:
lena的open结果:
lena的close结果
二值图像--形态学处理3 开操作和闭操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。