二值图像--形态学处理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结果
评论暂时关闭