形态学的二值运算
形态学二值运算包括膨胀,腐蚀,开运算和闭运算基本方法,如下图所示,膨胀运算和闭运算的效果总体上对图像而言是一个区域增长的过程,而腐蚀和开运算是一个区域减少的运算。
Hit and Miss
Hit and Miss 算法中文称之为“击中击不中变换”,其数学表达式如下所示:
以上计算方式可以认为是对前景进行腐蚀运算,再对背景进行腐蚀运算,最后再求交集,得到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用来描述粒度尺寸的密度情况,简单来说,也就是表示图像中物体尺寸的分布情况。
对于图像,利用一系列大小不同的SE(记为)求取Pattern Spectrum(记为)的表达式,如下所示:
其中Card表示对当前物体尺寸的数量进行计数。
Pattern Spectrum的计算过程可以描述为以下几个步骤:
- 对原图像以合适的SE大小进行开运算;
- 将原图像与SE进行开运算的图像进行相减,得到一个尺寸转换距离(Distance Size Transformation,DST);
- 在二值图像中,计算物体像素的数量,在灰度图像中,将所有的灰度值相加;
- 将以上求得的数量放在Pattern Spectrum所对应的第个Spectrum中。();
- 将开运算之后得到的图像作为新的原始图像,同时增加1,重复以上四个步骤。
注意:上述步骤的循环过程中,随着的增加,结构化元素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
可以很容易的看出,Euclidean Distance 的公式跟圆有关,所以Euclidean Distance的SE是一个圆形结构。
- City Block Distance()
City Block Distance的实现,可以从公式中看出,用到了矩形的SE,也就是一个8领域SE,其实现效果如下:
- Chessboard Distance()
也可以看出,Chessboard Distance的SE结构是菱形,是一个4邻域关系,其实现效果如下图所示:
一些DIstance Transform的效果图如下图所示:
Skeleton
通过上述 Distance Transform的效果图可以看出,通过Distance Transform的转换,得到的效果图中,距离图像边缘最远的点,中间会形成一条近似于白色的线,这些白色的线,在形态学中,被定义为Skeleton,如下图所示:
完全拟合前景区域内的双切圆中心的轨迹形成的Skeleton,也可以看作是距离图像边缘最远处的点构成的拓扑
- Skeleton 是一个不断减去二值图像中前景的过程,此过程保留前景区域拓扑结构(范围和连通性)的同时,丢弃掉大部分原始区域的前景像素。
Skeleton的实现,用数学公式可以描述为一下两个步骤:
- 根据所选SE的大小,得到一系列Skeleton的子集
其中,表示一系列尺度不同的SE - 对得到的一系列SKeleton子集进行求并集:
通过Erosion可以得到一副图像的Skeleton,那么,如果知道Skeleton过程中的一系列和Skeleton子集 ,那么通过与Erosion相反的运算Dilation,可以将Skeleton恢复成原图,这一过程称之为 Skeleton Reconstruction其数学定义如下图所示:
为了更形象地理解 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
网友评论