美文网首页
形态学算法

形态学算法

作者: 此间不留白 | 来源:发表于2020-05-20 22:58 被阅读0次

    上海交通大学 医学图像处理技术

    形态学的二值运算

    形态学二值运算包括膨胀,腐蚀,开运算和闭运算基本方法,如下图所示,膨胀运算和闭运算的效果总体上对图像而言是一个区域增长的过程,而腐蚀和开运算是一个区域减少的运算。


    Hit and Miss

    Hit and Miss 算法中文称之为“击中击不中变换”,其数学表达式如下所示:

    F \otimes K=(F \ominus K_1) \cap(F^c \ominus K_2)^c
    其中 K_1 \cap K_2 = \oslash ,且 K_1 \in K,K_2 \in K

    以上计算方式可以认为是对前景进行腐蚀运算,再对背景进行腐蚀运算,最后再求交集,得到Hit and Miss的结果,其运算结果如下所示:


    这是一个在前景上fit,背景上Miss的过程,可以用来求取图像上的一些边缘点,顶点或者是一些孤立点,如下图所示,通过Hit and Miss算法能够得到齿轮的顶点。



    Hit and Miss算法的实现过程可以分为以下几个步骤:

    • 以原点为中心,将原图像和SE(Structure Element,结构化要素)进行叠加;
    • 比较被SE覆盖的原图像的像素点和SE的像素点进行比较:
      • 如果SE的前景和背景的像素点和被SE覆盖的原图像的前景和背景的像素点match,则将被SE所覆盖的原图的像素点设置为前景颜色;
      • 如果这些像素点之间不match,则将被SE所覆盖的原图像的像素点设置为背景色。

    如下图所示,利用四个表示左上角,右上角,左下角和右下角的SE对原图进行Hit and Miss运算,可以实现一个角度检测的功能。


    Pattern Spectrum

    Pattern Spectrum用来描述粒度尺寸的密度情况,简单来说,也就是表示图像中物体尺寸的分布情况。
    对于图像F,利用一系列大小不同的SE(记为r_ik)求取Pattern Spectrum(记为PS_{r_ik}(F))的表达式,如下所示:

    PS_{r_ik}(F) = \left\{\begin{matrix} &Card((F \circ r_iK) - (F \circ r_{i+1} K)) \ \ \ if \ \ \ i>0\\ &Card((F \bullet r_{-i}K) - (F \bullet r_{-i-1} K)) \ \ if \ \ \ i<0\\ \end{matrix}\right.

    其中Card表示对当前物体尺寸的数量进行计数。

    Pattern Spectrum的计算过程可以描述为以下几个步骤:

    • 对原图像以合适的SE大小进行开运算;
    • 将原图像与SE进行开运算的图像进行相减,得到一个尺寸转换距离(Distance Size Transformation,DST);
    • 在二值图像中,计算物体像素的数量,在灰度图像中,将所有的灰度值相加;
    • 将以上求得的数量放在Pattern Spectrum所对应的第n个Spectrum中。(n 从0开始);
    • 将开运算之后得到的图像作为新的原始图像,同时n增加1,重复以上四个步骤。

    注意:上述步骤的循环过程中,随着i的增加,结构化元素SE的尺寸也会随之扩展,这意味着图像中尺寸较小的目标将会在初始阶段被过滤,而随着SE的扩张,图像中尺寸越来越大的目标也会逐渐消失。

    • 最后,当图像中的所有尺寸的目标都被抹去时,停止整个计算过程。

    Pattern Spectrum的应用实例如下所示,可以看出,对一个包含不同大小目标的图像而言,随着Pattern Sperctrum过程,利用尺寸不断扩展的SE进行开运算,图像中的物体会根据尺寸大小的不同被逐渐抹去。


    最后,通过Pattern Spectrum可以得到图像中不同尺寸目标的分布情况,如下图所示:



    Pattern Spectrum不仅可以用来分析图像中不同尺寸目标的分布情况,而且还可以用来分析目标的形状,如下图所示,数字“3”和“5”在形状上具有相似性,所以其Pattern Spectrum的波形也具有相似性。


    Recursive Dilation

    对一副图像进行多次dilatio的过程称之为recursive dilation,其定义如下所示:


    将结构化要素定义为Recursive Dilation 的base
    Rescursive Dilation会构造一系列形状相同,尺寸不同的SE
    如下图所示,用菱形和正方形的SE分别进行Recrusive Dilation会形成形状相同,大小不同的一系列SE,而利用菱形和正方形的SE交替地进行Recursive Dilation 会得到一个近似圆形的SE.

    Recursive Erosion

    与Recursive Dilation 相对应的一种形态学算法是Recursive Erosion,对一副图像实现递归腐蚀的算法,其数学定义公式如下:

    当对图像中的目标实现Recursive Erosion时,目标的尺寸会逐渐减小,直到完全消失。

    Recursive可以用来实现图像分割,如下图所示,对一副图像执行Recursive Erosion时,图像的中的目标会逐渐缩小,相连的区域会逐渐分离。


    Distance Transform

    对一副二值图像Rescursive Erosion,每一次Erosion都会抹去图像中的一些像素点,按照Rescursive Erosion的操作,将每次通过Erosion抹去的像素点标记为Erosion的次数,则可以将二值图像转换为灰度图像,此过程被称之为Distance Transform,具体如下图示例所示:


    为了更加直观地理解Distance Transform的过程,整个Distance Transform的过程如下图所示:


    Distance Metrics

    按照SE的不同,Distance Metrics可以分为以下三类:

    • Euclidean Distance
      D_{Euclid} = \sqrt{(x_2-x_1)^2+(y_2-y_1)^2}
      可以很容易的看出,Euclidean Distance 的公式跟圆有关,所以Euclidean Distance的SE是一个圆形结构。
    • City Block Distance(N_8)
      D_{City} = |x_2-x_1|+|y_2-y_1|

    City Block Distance的实现,可以从公式中看出,用到了矩形的SE,也就是一个8领域SE,其实现效果如下:


    • Chessboard Distance(N_4)
      D_{chess} =\max(|x_2-x_1|,|y_2-y_1|)
      也可以看出,Chessboard Distance的SE结构是菱形,是一个4邻域关系,其实现效果如下图所示:

    一些DIstance Transform的效果图如下图所示:


    Skeleton

    通过上述 Distance Transform的效果图可以看出,通过Distance Transform的转换,得到的效果图中,距离图像边缘最远的点,中间会形成一条近似于白色的线,这些白色的线,在形态学中,被定义为Skeleton,如下图所示:


    完全拟合前景区域内的双切圆中心的轨迹形成的Skeleton,也可以看作是距离图像边缘最远处的点构成的拓扑
    • Skeleton 是一个不断减去二值图像中前景的过程,此过程保留前景区域拓扑结构(范围和连通性)的同时,丢弃掉大部分原始区域的前景像素。

    Skeleton的实现,用数学公式可以描述为一下两个步骤:

    • 根据所选SE的大小,得到一系列Skeleton的子集
      S_i(F)=(F \ominus r_iK)-[(F \ominus r_iK) \circ K] \ \ 其中, i=0,1,2…,n
      其中,r_iK表示一系列尺度不同的SE
    • 对得到的一系列SKeleton子集进行求并集:
      S(F) = \bigcup_{i=0}^{n}S_i(F)

    通过Erosion可以得到一副图像的Skeleton,那么,如果知道Skeleton过程中的一系列r_iK和Skeleton子集 S_{i}(F),那么通过与Erosion相反的运算Dilation,可以将Skeleton恢复成原图,这一过程称之为 Skeleton Reconstruction其数学定义如下图所示:
    F = \bigcup_{i=0}^{n}S_i(F) \oplus r_iK
    为了更形象地理解 Skeleton和Skeleton Reconstruction 的实现过程,有如下示例:

    如上图,通过Distance Transform可以得到图像中关于像素的一组局部8领域最大值(局部最大值),只要将这些局部最大值提取出来,就得到了原图的Skeleton

    而将Skeleton 恢复成原图的过程,可以用下图表示



    如上图,Skeleton Reconstruction的过程与求Distance Transform的过程想反,可以表述为,先对SE的size为3的像素点进行Dilation,再对SE的size为2的像素点进行Dilation,最后对SE的size为1的点进行Dilation,最后实现Skelton Reconsturction

    相关文章

      网友评论

          本文标题:形态学算法

          本文链接:https://www.haomeiwen.com/subject/xxcinhtx.html