应用背景:在前两篇博文中我们看到腐蚀操作会缩小图像前景、膨胀操作会增大图像前景,经过这两种变换后图像的细节也发生了一些变换,如果腐蚀和膨胀同时处理图像会产生什么效果呢,这个问题就是本文要讲的开操作。
基本原理:在二值形态学图像处理中,除了腐蚀和膨胀这两种一次运算外,还有二次运算操作,开运算就是其中一种。用结构元B对图像A进行开操作表示为A 。B,用集合运算定义如下:
从上式可知,开操作是先对图像进行腐蚀然后进行膨胀。
C++实现:把前两篇博文中的腐蚀操作和膨胀操作的代码合在一起就完成了开操作的C++实现。
运行结果:在VS2010中运行MFC多文档程序得到结果如下图
开操作前的lena图像
开操作后的lena图像
从开操作的处理结果来看,达到先腐蚀后膨胀的双重效果,开操作平滑了图像物体的边缘、断开了较窄的狭颈并消除了细长的突出物。