第六章:图像处理之图像分割Image segmentation
outline
– Point, line and edge detection (Prewitt, Sobel and Laplacian of Gaussian)
– Hough transform, e.g., straight line, circle, etc
– Thresholding (Global and Adaptive)
– Statistical mixture model
– Expectation-maximisation method
– Morphological Watersheds
– Motion, e.g., difference image and accumulative difference approaches
– Active contour models
• Snakes
——————————————————————————————————————————
1.Point, line and edge detection (Prewitt, Sobel and Laplacian of Gaussian)
1.1 Point Detection —— 用Laplacian mask
如果一个孤立的点(此点的灰度级与其背景的差异相当大并且它所在的位置是一个均匀或近似均匀的区域)
与它周围的点很不同,则容易被这类点检测。
就是给中间点加很重的权重,如果和周围八个的和加起来为负数并且很小,并且超过了设定阈值,那么说明这里有个点。

1.2 line detection
同理,line也是,只不过有了几个不同的方向。

If we want to detect a line in a specified direction, then we should use the mask associated with that direction and threshold its output responses.
如果我们想在指定的方向上检测一条线,那么我们应该使用与该方向相关联的掩码,并对其输出响应设置阈值。
1.3 edge detection
图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈.边缘上的这种变化可以用微分算子检测出来,通常用一阶或二阶导数来检测边缘。


可以用一堆算子来近似代替梯度值:

拉普拉斯的一阶导数二阶导数:


4由于拉普拉斯算子对噪声非常敏感,所以它的原始形式一般不用于边缘检测(基于过零特性)。
5解决方案:在应用拉普拉斯算子之前,使用高斯模糊函数h(r)平滑图像。
如果使用高斯+1阶导检测边缘,对于不同的方向,要使用不同的滤波器来进行检测;而且阙值的选择往往并不能很好的适用于所有方向;容易漏掉除了x轴和y轴方向上的其他方向的边缘,存在较高的漏报率。
拉普拉斯的同向性刚好解决了上述问题,而且通过判断过零点可以更加容易的判断边缘。但是同时拉普拉斯算子也有较高的误报率(比如 roof edges 屋脊型边缘和一些虚假边缘)
2、 Hough Transform
A-基本原理
一条直线可由两个点A=(X1,Y1)和B=(X2,Y2)确定(笛卡尔坐标)
另一方面,也可以写成关于(k,q)的函数表达式(霍夫空间):

对应的变换可以通过图形直观表示:

变换后的空间成为霍夫空间。即:笛卡尔坐标系中一条直线,对应霍夫空间的一个点。
反过来同样成立(霍夫空间的一条直线,对应笛卡尔坐标系的一个点):

y = ax + b hough空间就是表示a,b,如果笛卡尔坐标系是一个直线那么hough是一个点,反之也对应。且hough空间直线的交点,就是笛卡尔中把点连起来的那个线。
再来看看A、B两个点,对应霍夫空间的情形:
一步步来,再看一下三个点共线的情况:
可以看出如果笛卡尔坐标系的点共线,这些点在霍夫空间对应的直线交于一点:这也是必然,共线只有一种取值可能。
如果不止一条直线呢?再看看多个点的情况(有两条直线):

其实(3,2)与(4,1)也可以组成直线,只不过它有两个点确定,而图中A、B两点是由三条直线汇成,这也是霍夫变换的后处理的基本方式:选择由尽可能多直线汇成的点。
看看,霍夫空间:选择由三条交汇直线确定的点(中间图),对应的笛卡尔坐标系的直线(右图)。

k=∞是不方便表示的,而且q怎么取值呢,这样不是办法。因此考虑将笛卡尔坐标系换为:极坐标表示。

算法:

首先,我们初始化一块缓冲区,对应于参数平面,将其所有数据置为0.
对于图像上每一前景点,求出参数平面对应的直线,把这直线上的所有点的值都加1。最后,找到参数平面上最大点的位置,这个位置就是原图像上直线的参数。上面就是霍夫变换的基本思想。就是把图像平面上的点对应到参数平面上的线,最后通过统计特性来解决问题。假如图像平面上有两条直线,那么最终在参数平面上就会看到两个峰值点,依此类推。
3.Thresholding (Global and Adaptive)
方法一

方法二
假设由两种分布构成:

4. Local/adaptive intensity based segmentation

如果有光照反射影响,就不适合用global。
所以引入局部:
- step1:均值平滑图像
- step2:求平滑图像的梯度图
- step3:运用Laplacian算子,找到具有局部最大阈值的点,这些点的原始灰度值就是候选的局部阈值。
- step4 :采样候选点,灰度值替换。将平滑图像中的候选点灰度值替换为原始图像中的灰度值或者更大一点的值。这么做的目的是不会检测到虚假目标,因而会损失一部分真实的目标。
- step5:插值灰度点,得到阈值表面。
5、 Watershed segmentation
分水岭算法的整个过程:
把梯度图像中的所有像素按照灰度值进行分类,并设定一个测地距离阈值。
找到灰度值最小的像素点(默认标记为灰度值最低点),让threshold从最小值开始增长,这些点为起始点。
水平面在增长的过程中,会碰到周围的邻域像素,测量这些像素到起始点(灰度值最低点)的测地距离,如果小于设定阈值,则将这些像素淹没,否则在这些像素上设置大坝,这样就对这些邻域像素进行了分类。
随着水平面越来越高,会设置更多更高的大坝,直到灰度值的最大值,所有区域都在分水岭线上相遇,这些大坝就对整个图像像素的进行了分区。
6.motion
假设左右两图是不同时间拍摄的图像。

7-snakes
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)