数字图像处理考点分析(七)

本文转载自:数字图像处理——第十章(图像分割)
版权声明:本文为博主【一千种风的味道】原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

上一篇:数字图像处理考点分析(六) 我们介绍了图像压缩技术,这一篇我们来学习图像分割的知识,这里转载了一位博主的优质内容,并在此基础上进行了修改、删减。

文章目录

      • 图像分割
        • 一、点、线和边缘检测
          • 1.1 孤立点的检测
          • 1.2 线检测
          • 1.3 边缘检测
            • 1.3.1 边缘模型
            • 1.3.2 基本边缘检测
            • 1.3.3 更先进的边缘检测技术
            • 1.3.5 Hough变换
        • 二、阈值处理
          • 2.1 基础知识
          • 2.2 基本的全局阈值处理
          • 2.3 用Otsu方法的最佳全局阈值处理
          • 2.4 用图像平滑改善全局阈值处理
          • 2.5 利用边缘改进全局阈值处理
          • 2.6 基于局部统计的可变阈值处理
          • 2.7 使用移动平均的图像阈值处理
        • 三、基于区域的分割
          • 3.1 区域生长
          • 3.2 区域分裂与聚合
        • 四、用形态学分水岭的分割

图像分割

形态学图像处理中,输入的是图像,输出的是从图像中提取出来的属性,分割是该方向上的另一步骤。

**分割将图像细分为构成它的子区域或物体。**细分的程度取决于要解决的问题。当感兴趣的物体或区域已经被检测出来了,那就停止分割。

单色图像的分割算法通常基于灰度值的两个基本性质: 不连续性和相似性。第一种是以 灰度变换(即灰度的突变)为基础分割图像,如边缘检测;第二种是根据事先预定义的 相似性准则把图像分成相似的区域,如阈值分割、区域生长、区域分裂和聚合。

图像分割的数学描述
令R表示一幅图像占据的整个空间区域。将图像分割视为把R分为n个子区域R1,R2,…,Rn的过程,满足:

img

(a):分割必须是完全的,即每个像素都必须在一个区域内;
(b):一个区域中的点以某种预定义的方式来连接(这些点必须是4连接或8连接的);
©:各个区域必须不相交;
(d):分割后的区域中的像素必须满足的属性(如,若Ri中的所有像素都有相同的灰度级,则Q(Ri) = TRUE),其中属性可以是灰度,颜色,纹理等;
(e):两个邻接区域Ri和Rj在属性Q的意义上必须是不同的。

一、点、线和边缘检测

本节主要介绍以灰度局部剧烈变化(灰度不连续性)检测为基础的分割方法。
对一幅图中灰度的突变,局部变化可以用微分来检测。因为变化短促,可以用一阶微分和二阶微分描述。
数字函数的导数可用差分来定义。一维函数f(x)在点x处一阶导数的近似:

在这里插入图片描述

一维函数f(x)在点x处二阶导数的近似:

在这里插入图片描述

对二维图像函数f(x,y),为表示一致性,使用偏微分,将处理沿两个空间轴的偏微分

有关一阶导数和二阶导数的结论:
(1) 一阶导数通常在图像中产生较粗的边缘;
(2) 二阶导数对精细细节,如细线、孤立点和噪声有较强的响应;
(3) 二阶导数在灰度斜坡和灰度台阶过渡处会产生双边缘响应;
(4) 二阶导数的符号可用于确定边缘的过渡是从亮到暗(负二阶导数)还是从暗到亮(正二阶导数)

计算图像中每个像素位置处的一阶导数和二阶导数的另一种方法是使用空间滤波器。
对3*3滤波器掩膜来说,导数是计算模板系数与被该模板覆盖的区域中的灰度值的乘积之和。即模板在该区域中心点处的响应如下:

在这里插入图片描述

zk为像素的灰度,wk为对应位置的系数。
其中,3 x 3的空间滤波器为:

在这里插入图片描述

1.1 孤立点的检测

点的检测应以二阶导数为基础。
孤立点常嵌在常数区域(或图像中亮度基本不变的区域)中,孤立点的灰度将完全不同与其周围像素。
点检测通常使用拉普拉斯算子进行检测。第三章介绍的四种拉普拉斯模板如下:

在这里插入图片描述

原理:如果在某个点处,该模板的响应R的绝对值超过了某个指定阈值,则说明在模板中心位置(x,y)处的该点已被检测到。输出图像中,这样的点标注为1,其他所有的点标注为0,从而产生一幅二值图像。公式描述如下:

在这里插入图片描述

其中,g是输出图像,T为一个非负阈值。R为上述介绍过的,即模板的系数与其覆盖区域的灰度值的乘积之和,也叫作模板的响应。
当模板的中心位于一个孤立点时,模板的响应最强,而在亮度不变的区域响应为0。

1.2 线检测

线检测会更复杂一些。对于线检测,二阶导数将产生更强的响应,并产生比一阶导数更细的线。
注:必须适当处理二阶导数的双线效应

线检测模板如下:

在这里插入图片描述

第一个模板对水平方向的线有最佳响应;第二个模板对45°方向的线有最佳响应;第三个模板对垂直方向的线有最佳响应;第四个模板对**-45°方向**的线有最佳响应。每个模板的首选方向用一个比其他方向更大的系数(如2)加权。每个模板中系数之和为0,表明恒定灰度区域中的响应为0。

注:有关正负45°模板中,不同的书有不同的说法,均与所选的坐标系及其方向有关,只要自己能搞清楚到底想要的是图像哪个方向的边缘即可,根据自己想要提取的对角的方向选择合适的模板即可,而不必纠结到底哪个模板是+45°,哪个是-45°。

若对检测图像中由给定模板定义的方向上的所有线感兴趣,则只须简单对图像运用这个模板,并对结果的绝对值进行阈值处理。留下的点是有最强响应的点,这些点与模板的方向最为接近,且组成了只有一个像素宽的线。

1.3 边缘检测

边缘检测是基于灰度突变来分割图像的方法

1.3.1 边缘模型

边缘模型根据它们的灰度剖面分为:台阶模型、斜坡模型和屋顶模型。

在这里插入图片描述

台阶边缘:理想型,1像素的距离上出现两个灰度级间的理想过渡。
斜坡边缘:实际中,数字图像都存在被模糊且带有噪声的边缘,因此更接近斜坡边缘,斜坡的斜度与边缘的模糊程度成正比。一个边缘点是斜坡中包含的任何点,一条边缘线段是一组已连接起来的这样的点。
屋顶边缘:屋顶模型是通过一个区域的线的模型,屋顶边缘的基底(宽度)由该线的宽度和尖锐度决定。

结论:
(1) 一阶导数的幅度可用于检测图像中的某个点处是否存在一个边缘;
(2) 二阶导数的符号可用于确定一个边缘像素是位于该边缘的暗侧还是位于该边缘的亮侧,为“正”在暗侧,为“负”在亮侧;
围绕一条边缘的二阶导数的两个附加性质:
a、对图像中的每条边缘,二阶导数生成两个值(一个不希望的特点);
b、二阶导数的零交叉点(零灰度轴和二阶导数极值间的连线的交点)可用于定位粗边缘的中心

边缘检测的基本步骤:

在这里插入图片描述

(1) 平滑滤波:由于梯度计算易受噪声影响,因此第一步是用滤波去噪。但是,降低噪声的平滑能力越强,边界强度的损失越大;
(2) 锐化滤波:为了检测边界,必须确定某点邻域中灰度的变换。锐化操作加强了存在有意义的灰度局部变化位置的像素点;
(3) 边缘判定:在图像中存在许多梯度不为零的点,但对于特定应用,不是所有点都有意义。这就要求我们根据具体情况选择和去除处理点,具体方法包括二值化处理和过零检测等;
(4) 边缘连接:将间断的边缘连接成有意义的完整边缘,同时去除假边缘。主要方法是Hough变换

1.3.2 基本边缘检测

图像梯度
图像f的(x,y)处边缘的强度和方向用梯度表征,梯度用∇f表示,用向量来定义:

在这里插入图片描述

该向量指出了f在位置(x,y)处的最大变化率的方向。
∇f的大小(长度/赋值)表示为M(x,y)。

在这里插入图片描述

平方和平方根需要大量的计算开销,故常用的是用绝对值来近似梯度的大小(幅值)。

在这里插入图片描述

它是梯度向量方向变化率的值,M(x,y)常称为梯度图像。注:gx,gy和M(x,y)都是与原图像大小相同的图像。
梯度向量的方向由对于x轴度量的角度给出:

在这里插入图片描述

任意点(x,y)处一个边缘的方向与该点处梯度向量的方向α(x,y)正交。

梯度算子(一阶导数)
常见的梯度算子的模板如下:

在这里插入图片描述

Roberts交叉梯度算子
具有对角优势的二维模板之一。

在这里插入图片描述

Prewitt算子
检测水平和竖直方向。

在这里插入图片描述

Sobel算子
与Prewitt模板类似,检测水平和竖直方向,但中心系数上使用一个权值2:

在这里插入图片描述

中心位置处使用2可以平滑图像。

用于检测对角线方向边缘的Prewitt和Sobel算子

在这里插入图片描述

小结:
1、Roberts算子边缘定位精确度高,但易丢失一部分边缘,由于图像没经过平滑处理,故不具备抑制噪声的能力。该算子对具有陡峭边缘且含噪声少的图像效果较好。
2、Sobel算子和Prewitt算子都考虑了邻域信息,相当于对图像先做加权平滑处理,不同的是平滑部分的权值有差异,故对噪声具有一定的抑制能力,检测出的边缘容易出现多像素宽度。Prewitt模板比Sobel模板实现更简单,但Sobel模板抑制噪声能力更强。
3、当边缘检测的目的是突出主要边缘并尽可能保持连接时,实践中通常对图像先进行平滑处理,在边缘检测完之后,对边缘结果再进行阈值处理。

1.3.3 更先进的边缘检测技术

这些技术是通过考虑如图像噪声和边缘本身特性等因素来改善简单的边缘检测方法。

高斯拉普拉斯算子(LoG)

拉普拉斯算子是一个二阶导数,对噪声具有无法接受的敏感性,而且其幅值会产生双线效应,另外,边缘方向的不可检测也是其的缺点之一,故一般不以其原始形式作用域边缘检测。

G(x,y)为高斯函数为:

在这里插入图片描述

其中σ是标准差。用高斯函数卷积模糊一幅图像,图像的模糊程度是由σ决定的。
高斯拉普拉斯算子为∇2G(x,y):

在这里插入图片描述

常见的LoG模板

在这里插入图片描述

实际中使用的是该模板的负值。
算法步骤:
1、对输入图像使用n*n高斯低通滤波器进行滤波;
2、计算滤波后图像的拉普拉斯;

在这里插入图片描述

3、寻找g(x,y)的零交叉来确定f(x,y)中边缘的位置。
高斯低通滤波器大小的选择,即n值应是大于等于6σ的最小奇整数。

坎尼边缘检测器(Canny算子)

前面介绍的几种基于微分方法的边缘检测算法,都是只有在图像不含噪声或者先通过平滑去噪的前提下才能正常使用。
在图像边缘检测中,抑制噪声和边缘精确定位是无法同时满足的。Canny算子力图在抗噪声干扰和精确定位之间寻求最佳这种方案。

Canny方法基于三个基本目标:
1、低错误率。所有边缘都应该被找到,并且应该没有伪响应。即检测到的边缘必须尽可能是真实的边缘。数学上,就是使信噪比SNR尽量大,输出信噪比越大,错误率越少。
2、边缘点应被很好地定位。已定位边缘必须尽可能接近真实边缘。即由检测器标记为边缘的点和真实边缘的中次年之间的距离应该最小。
3、单一的边缘点响应。对于真实的边缘点,检测器仅应返回一个点。即真实边缘周围的局部最大数应该是最小的。这意味着在仅存一个单一边缘点的位置,检测器不应指出多个边缘像素。

算法步骤:
1、用一个高斯滤波器(n*n大小)平滑输入图像;
2、用一阶偏导的有限差分来计算梯度幅值图像和角度图像;
3、对梯度幅值图像应用非最大抑制;
4、用双阈值处理和连接分析来检测并连接边缘

几种算子的比较分析

1、从边缘定位的精度看:
Roberts算子和Log算子定位精度较高。
Roberts算子简单直观,Log算子利用二阶导数零交叉特性检测边缘。但Log算子只能获得边缘位置信息,不能得到边缘的方向等信息。
2、从对不同方向边缘的响应看
从对边缘方向的敏感性而言,Sobel算子、Prewitt算子检测斜向阶跃(灰度突变)边缘效果较好,Robets算子检测水平和垂直边缘效果较好。Log算子不具备边缘方向检测能力。
Sobel算子可以提供最精确的边缘方向估计。
3、从去噪能力看
Roberts和Log算子定位精度虽然较高,但受噪声影响大。
Sobel算子和Prewitt算子模板相对较大因为去噪能力较强,具有平滑作用,能滤除一些噪声,去掉部分伪边缘,但同时也平滑了真正的边缘,这也正是其定位精度不高的原因。

从总体效果来衡量,Canny算子给出了一种边缘定位精确性和抗噪声干扰性的较好折中。

当有成本和速度限制时,通常使用阈值梯度边缘检测方法。当追求边缘质量时,通常会选择Log和Canny算子,Canny算子效果更好。

1.3.5 Hough变换

理想情况下,边缘检测应该仅产生位于边缘上的像素集合。实际上,由于噪声、不均匀照明引起的边缘间断,以及其他引入灰度值虚假的不连续的影响,这些像素并不能完全描述边缘特性。因此,一般是在边缘检测后紧跟连接算法,将边缘像素组合成有意义的边缘或区域边界。
Hough变换是一个非常重要的检测间断点边界形状的方法。通过将图像坐标空间变换到参数空间,来实现直线和曲线的拟合。##

原理

直角坐标参数空间
在x-y坐标空间中,经过点(xi,yi)的直线表示为yi = axi + b,a为斜率,b为截距。
通过点(xi,yi)的直线有无数条,对应的a和b也不尽相同。
若将xi和yi看作常数,将a和b看作变量,从x-y空间变换到a-b参数空间。则点(xi,yi)处的直线变为b = -xia + yi。x-y空间的另一点(xj,yj)处的直线变为b = -xja + yj。
x-y空间中的点在a-b空间中对应一条直线,若点(xi,yi)和(xi,yi)在x-y空间共线,则在a-b空间对应的两直线相交于一点(a’,b’)。反之,在a-b空间相交于同一点的所有直线,在x-y空间都有共线的点与之对应。

在这里插入图片描述

具体计算

将a-b空间视为离散的。建立二维累加数组A(a,b),第一维是x-y空间中直线斜率的范围,第二维是直线截距范围。二维累加数组A也常被称为Hough矩阵

初始化A(a,b)为0。
对x-y空间的每个前景点(xi,yi),将a-b空间的每个a带入b = -xia + yi,计算对应的b。
每计算出一对(a,b),对应的A(a,b) = A(a,b) + 1。
所有计算结束后,在a-b空间找最大的A(a,b),即峰值。峰值所对应的(a’,b’)参考点就是原图像中共线点数目最多的直线方程的参数。

在这里插入图片描述

求出参考点后,整个目标的边界就可以确定了。

极坐标参考空间
使用直角坐标表示直线时,当直线为一条垂直直线或接近垂直直线时,该直线的斜率为无限大或接近无限大,故在a-b空间中无法表示,因此要在极坐标参考空间解决这一问题。

直线的法线表示为:xcosθ + ysinθ = ρ

ρ:直线到原点的垂直距离,取值范围为[-D,D],D为一幅图像中对角间的最大距离;θ:x轴到直线垂直线的角度,取值范围为[-90°,90°]。

极坐标中的Hough变换,是将图像x-y空间坐标变换到ρ-θ参数空间中。x-y空间中共线的点变换到ρ-θ空间后,都相交于一点。不同于直角坐标的是,x-y空间共线的点(xi,yi)和(xj,yj)映射到ρ-θ空间是两条正弦曲线,相交于点(ρ‘,θ’)。
具体计算时,也要在ρ-θ空间建立一个二维数组累加器A。除了ρ和θ的取值范围不同,其余与直角坐标类似,最后得到的最大的A所对应的(ρ,θ)。

在这里插入图片描述

Hough也能处理其他任意形状的函数。

注:Hough只能处理二值图像,一般在执行变换前需要在图像上执行边缘检测。

二、阈值处理

图像阈值处理在图像分割应用中处于核心地位。

2.1 基础知识

一般情况下,一幅图像由前景部分和背景部分构成,我们感兴趣的一般的是前景部分,所以一般用阈值将前景和背景分割开来,使我们感兴趣的图像像素值为1,不感兴趣的为0;有时一张图我们会有几个不同的感兴趣区域(不在同一个灰度区域),这时我们可以用多个阈值进行分割。

单阈值处理

在这里插入图片描述

T为阈值。此时T适用于整个图像,该处理称为全局阈值处理。

双阈值处理

在这里插入图片描述

T1和T2分别为不同的阈值,a、b和c是三个不同的灰度值。

在这里插入图片描述

灰度阈值的成功与否直接关系到可区分直方图模式(即不同的感兴趣区域,可能不止一个)的波谷的宽度和深度,波谷越宽且越深,则越易进行阈值处理。
影响波谷特性的关键因素:1)波峰间的间隔(波峰离得越远,分离这些模式的机会越大);2)图像中的噪声内容(模式的波峰随噪声的增加而展宽);3)物体和背景的相对尺寸;4)光源的均匀性;5)图像反射特性的均匀性。

2.2 基本的全局阈值处理

当物体和背景像素的灰度分布十分明显时,可用适用于整个图像的单个阈值。下面介绍为每幅图像自动估计阈值的算法。算法描述如下:
1)为全局阈值T选择一个初始估计值(建议初始估计值设为图像最大灰度值和最小灰度值的中间值);
2)使用阈值T分割该图像。将产生两组像素:G1由灰度值大于T的所有像素组成,G2由灰度值小于T的所有像素组成。
3)对G1和G2的像素分别计算平均灰度值m1和m2;
4)计算新阈值:T = 1/2(m1 + m2);
5)重复步骤2~4,直到在连续的重复中,T的差异比预先设定的参数小为止。

在这里插入图片描述

2.3 用Otsu方法的最佳全局阈值处理

Otsu是一种基于图像直方图的方法。
图像的阈值处理也可以理解为把像素分配个两个或多个类。Otsu采用最大化类间方差的方法,来确定图像分割的最佳阈值k。

在这里插入图片描述

σB^2 (k)为类间方差;P1(k)为阈值k时,像素被分到类C1中的概率;m1(k)为分配到类C1的像素的平均灰度值;mG为整个图像的平均灰度值;P1(k)和m1(k)与1类似。
当设置的方差越大,则越接近正确分割一幅图像的阈值。上式中的k就是我们所要寻找的最佳阈值,当k不唯一时,则将所有的最佳阈值进行取平均值即可。

在这里插入图片描述

从这个小例子中,我们看不出来基本全局阈值处理和Ostu最佳阈值处理的区别,但对于某些图像的直方图没有明显的波谷的情况,Ostu方法的阈值处理效果会更好

2.4 用图像平滑改善全局阈值处理

噪声会对图像的阈值处理产生很大的影响。当噪声不能在源头减少时,在阈值处理之前可以先对图像进行平滑处理,以便后续进行更好的阈值处理。

在这里插入图片描述

由原图的直方图可以看出,几乎观察不到要进行分类的不同类别的波谷,因此分割出来的结果就不是很好,对图像使用均值滤波器先进行平滑处理(去噪)后再进行阈值处理,分割的效果就很好了。

2.5 利用边缘改进全局阈值处理

对于边界明显的图像,前景和背景面积悬殊,但是整体灰度值相近,不易用otsu直接找出正确的阈值,可以使用边缘改进的阈值处理。
边缘改进的阈值处理:主要是处理那些位于或接近物体和背景间边缘的像素,使得这些像素分离开的操作。
算法描述:
1)计算一副边缘图像(梯度和拉普拉斯都可以)。
2)指定一个阈值T。通常通过百分比指定阈值,常选择边缘图像直方图中百分比相对高(如90%)的值作为阈值(边缘图像直方图中的较高的值表示边缘比较强烈的部分)。
3)用步骤2中的阈值对步骤1中产生的图像进行阈值处理,产生一副二值图像gT(x,y)。将选择出来的“强”边缘像素的二值图像作为模板。
4)使用gT(x,y)与原图像f(x,y)相乘,得到一幅新图像,相当于使原图像中的物体和背景对比的更明显。
5)对新图像进行阈值分割,如Ostu方法。
在这里插入图片描述

2.6 基于局部统计的可变阈值处理

在背景光照不均匀的情况下,或者在有多个主要物体灰度的情况下,此时使用全局阈值处理则不太合适,为此引入局部可变阈值处理。
我们用一幅图像中每个点(x,y)的邻域中像素的标准差和均值,分别表示局部对比度和平均灰度这两个描述子。
令σxy和mxy表示一幅图像中以坐标(x,y)为中心的邻域Sxy所包含的像素集合的标准差和均值。则可变局部阈值Txy为:

在这里插入图片描述

其中a和b为非负常数,a和b的值通常是通过实验确定的。且

在这里插入图片描述

其中mG为全局图像均值。

在这里插入图片描述

当背景接近于常数,并且所有物体的灰度高于或低于背景灰度时,选择全局均值一般会得到较好的结果。

2.7 使用移动平均的图像阈值处理

移动平均是一种局部阈值处理方法,该方法以一幅图像的扫描行计算移动平均值为基础。移动平均分割能减少光照偏差,且计算简单。当感兴趣的物体与图像尺寸相比较小(或较细)时,基于移动平均的阈值处理会工作的很好。适合于处理打印图像和手写文本图像。
为减少光照偏差,扫描是以Z字形模式逐行执行的。令zk+1表示在扫描序列中第k+1步遇到的点的灰度。该新点处的移动平均(平均灰度)如下:

在这里插入图片描述

n表示用于计算平均的点的数量。
使用下式进行分割:

在这里插入图片描述

其中K是[0,1]区间的常数, mxy是输入图像中点(x,y)处的移动平均(即上式的计算平均移动)。
在这里插入图片描述

关于n的选取,经验之一是令n等于平均笔画宽度的5倍,在此图像中,平均宽度为4像素,故n取20。
原图是一幅以斑点灰度模式遮蔽的手写文本图像,用Ostu方法处理不能克服灰度的变化。很明显使用移动平均局部阈值处理分割能得到更好的效果。

三、基于区域的分割

以直接寻找区域为基础的分割技术。

3.1 区域生长

区域生长:根据预先定义的生长准则,将像素或子区域组合为更大区域的过程。
基本思想:从一组“种子”点(种子点可以是单个像素,也可以为某个小区域)开始,将与种子性质相似的邻域像素或区域与种子点合并,形成新的种子点,重复此过程直到不能生长为止。种子点和邻域区域的相似性判据可以是灰度值、纹理、颜色等多种图像信息。
算法步骤:
1、选择合适的种子点;
2、确定相似性准则即生长准则;
3、确定生长停止条件。
一般来说,在无像素或者区域满足加入生长区域的条件时,区域生长就会停止。

用一个简单的例子来说明区域生长的过程:图(a)为原图像,数字表示像素的灰度值,以灰度为8的像素为初始的种子点。在8邻域内,生长准则是待测点灰度值和种子点灰度值相差为1或0。当合并到图d后,其他像素点已经不满足生长生长准则,故停止生长。

在这里插入图片描述

实际中,区域生长时经常还要考虑到生长的“历史”,还要根据区域的尺寸、形状等图像的全局性质来决定区域的合并。

在这里插入图片描述

3.2 区域分裂与聚合

将一幅图像细分为一组任意的不相交区域,然后聚合和/或分裂这些区域。
令R表示整幅图像区域,选择一个属性Q,对R进行分割就是依次将它细分为越来越小的四象限区域,以便任何区域Ri都有Q(Ri) = TRUE。
从整个区域开始,若Q(R) = FALSE,则将其分割为4个象限区域,若分割后象限区域Q依旧为FALSE,则将对应的象限再次细分为四个子象限区域,以此类推。分割的过程可以用一个四叉树形式直观的表示。
细分完成后,对满足属性Q的组合像素的邻接区域进行聚合,即Q(Rj∪Rk) = TRUE时,对两区域进行聚合。

在这里插入图片描述

算法小结:
1、把满足Q(Ri) = FALSE的任何区域Ri分裂为4个不相交的象限区域;
2、不可能进一步分裂时,对满足条件Q(Rj∪Rk) = TRUE的任意两个邻接区域Rj和Rk进行聚;
3、无法进一步聚合时,停止操作。
习惯上要规定一个不能再进一步执行分裂的最小四象限区的尺寸。

在这里插入图片描述

四、用形态学分水岭的分割

分水岭算法(watershed)是一种借鉴了形态学理论的分割方法,在该方法中,将一幅图像看成一个拓扑地形图,其中图像的灰度值对应地形高度值。高灰度值对应山峰,低灰度值对应山谷。水总是朝地势低的地方流动,直到某一局部低洼处才停下来,这个低洼处被称为汇水盆地。最终所有的水会分聚在不同的汇水盆地,汇水盆地之间的山脊被称为分水岭。对图像进行分割,就是要在灰度图像中找出不同的“汇水盆地”和“分水岭”。也就是感兴趣的区域内部及其边缘。

在这里插入图片描述

一般考虑到各区域内部像素的灰度比较接近,而相邻区域像素间的灰度差距较大,可以先计算一幅图像的梯度图,再寻找梯度图的分水岭。在梯度图中,小梯度值对应区域内部,大梯度值对应区域的边界,分水岭算法就是在寻找大梯度值像素的位置。

在这里插入图片描述

直接应用分水岭分割算法的效果往往并不好,通常会由于噪声和梯度的其他局部不规则性造成过度分割。更有甚者,过度分割可能导致不可用的结果。一种解决方案是,通过融入预处理步骤来限制允许存在的区域数量。
用于控制过度分割的一种方法是基于标记的。标记是指属于一幅图像的连通分量。与感兴趣物体相联系的标记称为内部标记,与背景相关联的标记称为外部标记。

你可能感兴趣的:(数字图像处理,计算机视觉,图像处理,人工智能)