谭升
非主流人工智能科学家 我和外面那些妖艳的货不一样

【数字图像处理】4.1:灰度图像-形态学处理

开篇废话

新年第一篇博客,希望大家新年里能都收获更多的知识和技术,今天说的是灰度图像的形态学处理,灰度图像与二值图像的区别在于其记录了灰度信息,所以,形态学处理的定义与二值图像有些不同,因为二值图像可以用一系列的二维坐标来表示图像信息,而灰度图需要一个三维坐标表示,而且二值图像中结构元SE是平坦的,没有灰度信息的,但灰度图中,结构元是可以带有第三维信息的,即结构元也是灰度的,这就带来了一些问题,因为二值图像中,形态学的输出结果完全由输入图像产生,但是结构元一旦引入灰度信息,那么输出结果将不再由输入图像唯一确定。所以,一般情况下,结构元都使用平坦的结构元。

腐蚀与膨胀

腐蚀与膨胀是形态学的基本操作,在灰度图像中也是如此,在二值图像中腐蚀和膨胀定义为对图像进行translation以后的“与”和“或”的逻辑操作结果,在灰度图像中,为了保存灰度信息,“与”和“或”操作被对应的替换成了“最大值”和“最小值”操作这样就给出了灰度图像中腐蚀和膨胀的操作定义。
另一种定义《图像处理、分析与机器视觉》中给出的是这样的,首先给出了个本影的概念,如果假设给出函数y=f(x),那么f产生的曲线到x轴的阴影叫做本影,曲线叫做顶面(三维的叫面,二维的叫线,三维以上叫超平面),结构元表示为函数v=k(x),一维函数f,k的腐蚀和膨胀等效于其本影(二值图像)的腐蚀与膨胀,并以此为基础推广到二维灰度图。

Center
我们以512×512的lena图中的第256行为例,展示下其操作结果,结构元为横向的1×5的结构元SE(1行,5列),中心为SE中心。下图为灰度图剖面示意图,其中蓝色为原图数据,绿色为膨胀后数据,红色为腐蚀后数据:
Center 1
我们将局部放大,可以看到其具体情况:
Center 2

开操作与闭操作

与二值图像中的定义相同,开、闭操作也又腐蚀膨胀操作衍生出来的,依旧先腐蚀后膨胀是开操作,先膨胀后腐蚀是闭操作。
具体如下图,蓝色为原图,绿色为闭操作,红色为开操作:

Center 3
局部放大,可以看出,开操作是将跨度小于结构元的峰顶消去,闭操作是将跨度小于结构元的谷底填平,冈萨雷斯的书中层有个滚动圆形结构元的例子也很生动,结论一致:

Center 4

顶帽和底帽

顶帽操作和底帽操作是灰度图像所特有的,其原理是开操作将使峰顶消去,具体消去了多少呢,可以用原图减去开操作结果,这样就能得到其消去的部分,而这个过程成为顶帽操作,顶帽就是开操作消去的峰顶,这一部分对应于图像中较亮的部分,也叫白色顶帽。
同理,底帽操作是用闭操作的结果减去原图就得到被闭操作填充的谷底部分,这一部分对应于图像中较暗的部分,也叫黑色底帽。

测地腐蚀与测地膨胀

测地腐蚀与测地膨胀在二值图像中的操作是将腐蚀与膨胀结果与ground做“与”和“或”操作,与灰度膨胀中膨胀的推广一样,“与”和“或”被取代为最大值和最小值。

重建操作

重建操作分为很多种,包括重建开操作、重建顶帽操作等。其根本原理是通过腐蚀找到SE的模式,然后迭代膨胀或者迭代顶帽操作直到图像收敛。

数学表达

腐蚀:

膨胀:

开操作:

闭操作:

顶帽操作:

底帽操作:

测地腐蚀:

测地膨胀:

嘿嘿。。公式还在生产中。。公式太多。。哈哈哈哈。。。。。

代码

结果图片

以下结果原图为lena 512×512的图像产生:
腐蚀:
Center 5
膨胀:
Center 6
开操作:
Center 7
闭操作:
Center 8
顶帽操作:
Center 9
底帽操作:
Center 10
重建操作示意(冈萨雷斯 中文第三版 P437):
去除横向亮条:重建顶帽操作
Center 11
重建开操作,去除纵向亮纹:
Center 12
上图横向膨胀:
Center 13
膨胀结果与重建顶帽操作的最小操作:
Center 14
原图对比:
Center 15

Share

You may also like...

说点什么

avatar
  Subscribe  
提醒

由于博客移至wordpress,部分公式和代码显示不正常,博主正在努力修改,如发现公式显示错误,请及时在文章下留言,感谢您的帮助,尽请原谅!