版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
7.1图像分割概述7.1.1图像分割的概念图像分割是图像处理的一个重要组成部分。在对图像的研究和应用中,人们往往仅对各幅图像中的某些部分感兴趣,这些部分常称为目标或前景(其他部分称为背景),它们一般对应图像中特定的、具有独特性质的区域。为了辨识和分析目标,需要将这些有关区域分离提取出来,在此基础上才有可能对目标进一步利用,如进行特征提取和测量。图像分割就是指把图像分成各具特性的区域并提取出感兴趣目标的技术和过程。下一页返回7.1图像分割概述图像分割具体定义为:按照图像的某种特征,在某一评判标准下,把所有对应于一个物体或同一物体的某个部位的像素组合在一起,并进行标记(如区域内的像素都赋予某个特定的灰度值),以表示它们属于一个区域,同图像的其余部分分开,即把图像分割成不同的区域,或把不同的目标分开(分割),或者说把图像分成互不重叠的区域并提取出感兴趣目标,这一处理过程称为图像分割。从本质上说,图像分割就是将图像中的像素按照特征的不同进行分类的过程。图7.1便是一个图像分割的实例:原图像包括飞机、天空及飞机尾气,经过图像分割,将这3个部分分别标以灰度值为0、100、255。上一页下一页返回7.1图像分割概述7.1.2图像分割的基本思路图像分割的基本思路分以下几步。(1)从简到难,逐级分割。(2)控制背景环境,降低分割难度。(3)把焦点放在增强感兴趣对象,缩小不相干图像成分的干扰上。例如图7.2,将图中汽车牌照文字部分单独分割出来。从简到难依次为分割矩形区域、定位牌照、定位文字;控制背景环境:路面、天空;感兴趣的对象为汽车牌照,不相干图像成分为非矩形区域,经过这样的思路分割之后的图像如图7.2(b)所示。上一页下一页返回7.1图像分割概述7.1.3图像分割方法分类图像分割方法已有上千种,并不断有新方法出现。但一般基于图像灰度值的不连续性和相似性可分为两大类:第一类方法是基于灰度的不连续变化分割图像,比如图像的边缘;第二类方法是依据事先制定的准则将图像分割为相似的区域,如区域分割。本章主要介绍边缘检测、阈值分割、区域分割和模糊聚类分割法等。上一页返回7.2边界分割法在数字图像分割中,有
3
种基本类型的灰度级间断:点、线和边缘。检测间断的常用方法是模板卷积运算法。一个一般的3×3模板为
,设图像为
,则模板运算为:图像中与模板所包围区域内中心点像素灰度值为模板内各对应像素灰度值与模板系数的乘积之和,即
(7.1)其中,
zi是与wi模板系数
相联系的像素的灰度值。下一页返回7.2边界分割法1)点的检测孤立点:此点的灰度级与其背景的差异相当大且所在位置是一个均匀的或近似均匀的区域。一般检测孤立点,采用模板运算的模板一般选择用空域的高通滤波器来检测孤立点,如图7.3(a),用此模板与图像做模板运算后,如果|R|>T,则称在模板中心位置上已经检测到一个点。其中,T是一个非负的门限,R由式(7.1)计算出。如果一个孤立的点与它周围的点很不相同,则很容易被这类模板检测到。注意,模板系数之和为零表示在灰度级为常数的区域,模板响应为零。上一页下一页返回7.2边界分割法点检测的具体算法描述如下。(1)设定阈值T,如T=32、64、128等,选定模板并采用模板运算计算高通滤波值R。(2)如果R值等于0,说明当前检测点的灰度值与周围点的相同。(3)当R的值足够大时,说明该点的值与周围的点非常不同,是孤立点。通过阈值T来判断|R|>T检测到一个孤立点。例7.1假设一幅图像为7.3(b),采用模板7.3(a)来进行检测。模板运算后孤立点处
R=(-1*8*8+128*8)/9=(120*8)/9=960/9=106设阈值T=64,当R>T即为孤立点。上一页下一页返回7.2边界分割法2)线的检测通过比较典型模板的计算值,确定一个点是否在某个方向的线上,所用典型模板如图7.4所示。如果第一个模板(水平模板)在图像中移动,这个模板将对水平方向的线条(一个像素宽度)有更强的响应。在一个不变的背景下,当线条经过模板的中间一行时会产生响应的最大值,相应的有垂直模板、45°模板、135°模板分别检测相应方向的线条。注意,每个模板系数相加的总和为零,表示在灰度级恒定的区域来自模板的响应为零。上一页下一页返回7.2边界分割法线检测的具体算法描述如下。(1)对于同一幅图像,依照模板运算公式(7.1)依次计算4个方向的典型检测模板,得到Ri,i=1,2,3,4。(2)在图像中心的点,如果|Ri|>|Rj|,对于所有j
=i,那么这个点被称为与模板i方向的线更相关,检测到一条该方向上的线。例如,如果在图中的一点有|R1|>|Rj|,j=2,3,4,说明此特定点与水平线有更大的关系。例7.2假设一幅图像为图7.5,采用模板为图7.4四个模板进行检测。用4种模板分别计算得R1=R水平=-6+30=24;R2=R45°=-14+14=0;R3=R垂直=-14+14=0;R4=R135°=-14+14=0。上一页下一页返回7.2边界分割法有|R1|>|Rj|,j=2,3,4,说明该图像为一条水平方向上的线条。利用以上原理可以设计任意方向的检测模板,设计原则如下。(1)模板尺寸可能大于3×3。(2)模板系数和为0。(3)感兴趣的方向的系数大。3)边界的检测边界是指两个具有相对不同灰度值特性的区域的边界线。若假定图像中的区域是非常类似的,两个区域之间的过渡,仅仅根据灰度的不连续性便可确定,常用边缘检测法;当假定不成立时,阈值分割技术一般来说比边缘检测更加实用。
上一页返回7.3边缘检测边缘是图像相邻像素间灰度值不连续的结果,这种不连续常可利用求导数方便地检测到,一般常用一阶和二阶导数来检测边缘。在图7.6中,第1排是一些具有边缘的图像序列,第2排是沿图像水平方向的1个剖面图,第3和第4排分别为剖面的一阶和二阶导数。第1列和第2列是阶梯状边缘,第3列是脉冲状边缘,第4列是屋顶状边缘。可用一阶导数的幅度值来检测边缘的存在,幅度峰值一般对应边缘位置。可用二阶导数的过零点检测边缘位置,而用二阶导数在过零点附近的符号确定边缘像素在图像边缘的暗区或明区。下一页返回7.3边缘检测脉冲状的剖面边缘与阶梯状边缘的一阶导数形状相同,所以它的一阶导数与阶梯状边缘的二阶导数形状相同,而它的两个二阶导数过零点正好分别对应脉冲的上升沿和下降沿,通过检测脉冲剖面的两个二阶导数过零点就可确定脉冲的范围。屋顶状边缘的剖面可看作是将脉冲边缘底部展开得到的,所以它的一阶导数是将图7.6(c)脉冲剖面的一阶导数的上升沿和下降沿展开得到的,而它的二阶导数是将脉冲剖面二阶导数的上升沿和下降沿拉开得到的。通过检测屋顶状边缘剖面的一阶导数过零点可以确定屋顶位置。上一页下一页返回7.3边缘检测7.3.1梯度算子梯度对应一阶导数,梯度算子是一阶导数算子。对一个连续函数f
(x,y),它在位置(x,y)的梯度可表示为一个矢量
(7.2)其中,Gx,Gy分别为沿x和y方向的梯度。
上一页下一页返回7.3边缘检测这个矢量的幅度和方向角分别为
(7.3)
(7.4)对阶跃状边缘,在边缘点处一阶导数有极值。因此可计算每个像素处的梯度来检测边缘点。梯度的大小代表边缘的强度,梯度方向与边缘走向垂直。对于数字图像,梯度常用差分代替微分来实现,即有梯度的幅度差分计算式为
(7.5)近似表示为
(7.6)上一页下一页返回7.3边缘检测这种梯度法又称为水平垂直差分法。另一种梯度法是交叉地进行差分计算,称为罗伯特梯度法,表示为
(7.7)近似表示为
(7.8)以上各式中的偏导数需对每个像素位置进行运算,在实际中常用小区域模板卷积来近似计算偏导数。对Gx和Gy各用1个模板,所以需要两个模板组合起来以构成1个梯度算子。即边缘检测的主要工具是边缘检测模板,边缘检测就是做一个模板运算。上一页下一页返回7.3边缘检测常见的梯度算子模板有以下几种:(1)最简单的梯度算子是罗伯特交叉(Robertscross)算子,为2×2模板,具体见图7.7(a)。Roberts边缘检测算子特点:根据任意一对互相垂直方向上的差分可用来计算梯度的原理,采用对角线方向相邻两像素之差来寻找图像边缘,检测的是沿与图像坐标轴45°角或135°角方向上的灰度梯度。边缘定位精度较高,但容易丢失一部分边缘,同时由于没经过图像平滑计算,不能抑制噪声。该算子对具有陡峭的低噪声图像响应最好。梯度计算公式为
(7.9)上一页下一页返回7.3边缘检测(2)索贝尔(Sobel)算子,为3×3模板,具体见图7.7(c)。Sobel算子有两个模板,一个是检测水平边缘的,一个是检测垂直边缘的,该点的最终输出梯度幅值为
(7.10)式中,
Sx,Sy分别为两个模板运算结果。检测重点放在了检测模板中心的像素点上。Sobel算子特点:很容易在空间上实现,受噪声的影响较小,对噪声具有平滑作用,提供较为精确的边缘方向信息,但它同时也会检测出许多伪边缘,边缘定位精度不够高。当对精度要求不是很高时,它是一种较为常用的边缘检测方法。且当使用大的模板时,抗噪声特性会更好,但这样做要增加计算量,而且得出的边缘也比较粗。
(7.9)上一页下一页返回7.3边缘检测(3)蒲瑞维特(Prewitt)算子,为3×3模板,具体见图7.7(b)。Prewitt算子有两个模板,一个是检测水平边缘的,一个是检测垂直边缘的,该点的最终输出梯度幅值为
(7.11)式中,
Sx,Sy
分别为两个模板运算结果。Prewitt算子特点:和Sobel算子类似,只是平滑部分的权值有些差异,对灰度渐变噪声较多的图像处理较好,但它与Sobel算子一样,对边缘的定位不如Roberts算子。上一页下一页返回7.3边缘检测例7.3不同梯度算子边缘检测结果比较。图7.8给出一组用图7.7所示3组模板计算出来的方向梯度。第1列为原图,第2列分别是用两个罗伯特模板得到的;第3列分别是用两个蒲瑞维特模板得到的;第4列分别是用两个索贝尔模板得到的。第一行分别为水平模板得到的,第二行分别为垂直模板得到的。上一页下一页返回7.3边缘检测7.3.2拉普拉斯(Laplacian)算子1)拉普拉斯算子拉普拉斯算子是一种二阶导数算子,是对图像
求二阶导数利用其陡峭下滑且越零点的位置来寻找边界,为3×3模板。对1个连续函数f
(x,
y),它在位置
(x,
y)
的拉普拉斯值定义如下。
(7.12)拉普拉斯模板的特点:对应中心像素的系数应是正的,而对应中心像素邻近像素的系数应是负的,且它们的和应该是零。
常用的两种模板分别见图7.9。上一页下一页返回7.3边缘检测拉普拉斯算子特点如下。(1)它是一种各向同性、线性和位移不变的边缘增强方法,即其边缘的增强强度与边缘的方向无关,卷积结果即为输出值(无方向算子)。(2)是二阶导数算子,因此对图像中的噪声非常敏感,对噪声有双倍加强作用。(3)常产生双像素宽的边缘,而且不能提供图像边缘的方向信息,所以很少直接用作边缘检测,而主要用于已知边缘像素后确定该像素是在图像的暗区域或明区域一边。(4)对细线和孤立点检测效果好。例7.4拉普拉斯算子检测边缘。
对Lena图像用图7.9两个模板分别进行边缘检测得到的两幅图像见图7.10。上一页下一页返回7.3边缘检测2)LoG算子LoG(Laplacian-Gauss)算子,又称拉普拉斯高斯算子。为了在边缘增强前滤除噪声,将高斯滤波和拉普拉斯边缘检测结合在一起,形成LoG(LaplacianofGaussian,LoG)算法,也称之为拉普拉斯高斯算法。这种方法的特点是图像首先与高斯滤波器进行卷积,这一步既平滑了图像又降低了噪声,孤立的噪声点和较小的结构组织将被滤除。由于平滑会导致边缘的延展,因此边缘检测器只考虑那些具有局部梯度最大值的点为边缘点,这一点可以用二阶导数的零交叉点来实现。LoG算子的输出
是通过卷积运算得到的。
(7.13)上一页下一页返回7.3边缘检测根据卷积求导法有
(7.14)其中
(7.15)称之为LoG(Laplacian-Gauss)算子,也称墨西哥草帽算子(见图7.11)。上一页下一页返回7.3边缘检测LoG算子特点如下。(1)对图像灰度变化较敏感,保证了边缘的封闭性,符合人眼对自然界中大多数物体的视觉效果。(2)边缘定位精度较差,而边缘定位精度和边缘的封闭性两者之间无法客观地达到最优化折中。(3)与高斯滤波器进行卷积,既平滑了图像又降低了噪声,孤立的噪声点和较小结构组织将被滤除。
(4)在边缘检测时仅考虑那些具有局部梯度最大值的点为边缘点,用拉普拉斯算子将边缘点转换成零交叉点,通过零交叉点的检测来实现边缘检测。LoG算子的
常用模板见图7.12。上一页下一页返回7.3边缘检测例7.5LoG算子检测边缘示例1。图7.13是lena图像采用LoG算子进行检测后的结果。例7.6LoG算子检测边缘示例2。用二阶导数算子检测阶梯状边缘需将算子与图像卷积并确定过零点。图7.14(a)为一幅含有字母S的二值图,图7.14(b)为卷积得到的结果,其中将过零点检测出来作为边缘就得到图7.14(c)。上一页下一页返回7.3边缘检测7.3.3Canny算子检测阶跃边缘的基本思想是在图像中找出具有局部最大梯度幅值的像素点。检测阶跃边缘的大部分工作集中在寻找能够用于实际图像的梯度数字逼近。由于实际的图像经过了摄像机光学系统和电路系统(带宽限制)固有的低通滤波器的平滑,因此,图像中的阶跃边缘不是十分陡立。图像也受到摄像机噪声和场景中不希望的细节的干扰。图像梯度逼近必须满足两个要求。(1)逼近必须能够抑制噪声效应。(2)必须尽量精确地确定边缘的位置。上一页下一页返回7.3边缘检测抑制噪声和边缘精确定位是无法同时得到满足的,也就是说,边缘检测算法通过图像平滑算子去除了噪声,但却增加了边缘定位的不确定性;反过来,若提高边缘检测算子对边缘的敏感性,同时也提高了对噪声的敏感性。有一种线性算子可以在抗噪声干扰和精确定位之间提供最佳折中方案,它就是高斯函数的一阶导数,对应于图像的高斯函数平滑和梯度计算。高斯平滑和梯度逼近相结合的算子不是旋转对称的。这种算子在边缘方向上是对称的,在垂直边缘的方向上是反对称的(沿梯度方向)。这也意味着该算子对最急剧变化方向上的边缘特别敏感,但在沿边缘这一方向上是不敏感的,其作用就像一个平滑算子。Canny边缘检测器是高斯函数的一阶导数,是对信噪比与定位之乘积的最优化逼近算子,正好满足上述性质,所以可以在抗噪声干扰和精确定位之间折中。上一页下一页返回7.3边缘检测Canny算子边缘检测的基本原理是:采用二维高斯函数的任一方向上的一阶方向导数为噪声Gauss滤波器,通过与图像卷积进行平滑滤波,然后对滤波后的图像寻找图像梯度的局部极大值,用一种称之为“非极值抑制”的技术,对平滑后的图像处理后,得到最后所需的边缘图像。通过下面的符号对Canny边缘检测器算法作一概括说明。用I[I,j]表示图像,使用可分离滤波方法求图像与高斯平滑滤波器卷积,得到的结果是一个已平滑数据阵列
(7.16)式中,σ是高斯函数的散布参数,它控制着平滑程度。上一页下一页返回7.3边缘检测已平滑数据阵列
S[i,j]的梯度可以使用
一阶有限差分近似式来计算
x与y偏导数的两个阵列
P[i,j]与
Q[i,j]:
(7.17)在这个
正方形内求有限差分的均值,以便在图像中的同一点计算x和y的偏导数梯度。幅值和方位角可用直角坐标到极坐标的坐标转化公式来计算。
(7.18)
(7.19)上一页下一页返回7.3边缘检测1)非极大值抑制幅值图像阵列
M[i,j]的值越大,其对应的图像梯度值也越大,但这还不足以确定边缘,因为这里仅仅把图像快速变化的问题转化成求幅值阵列
M[i,j]的局部最大值问题。为确定边缘,必须细化幅值图像中的屋脊带(Ridge),即只保留幅值局部变化最大的点。这一过程叫非极大值抑制,它会生成细化的边缘。
非极大值抑制通过抑制梯度线上所有非屋脊峰值的幅值来细化M[i,j]中的梯度幅值屋脊。这一算法首先将梯度角
θ[i,j]的变化范围减小到圆周的
4
个扇区之一,如图7.15所示。
(7.20)上一页下一页返回7.3边缘检测4
个扇区的标号为0~3,对应着
邻域内元素的4
种可能组合,任何通过邻域中心的点必通过其中一个扇区。梯度线可能方向的圆周分区用度来标记。该算法使用一个
邻域作用于幅值阵列
M[i,j]的所有点。在每一点上,邻域的中心像素
M[i,j]与沿着梯度线的两个元素进行比较,其中梯度线是由邻域的中心点处的扇区值ζ[i,j]给出的。如果在邻域中心点处的幅值
M[i,j]不比沿梯度线方向上的两个相邻点幅值大,则M[i,j]赋值为零。这一过程可以把
M[i,j]宽屋脊带细化成只有一个像素点宽。在非极大值抑制过程中,保留了屋脊的高度值。上一页下一页返回7.3边缘检测设
(7.21)表示非极大值抑制过程。
N[i,j]中的非零值对应着图像强度阶跃变化处的对比度。尽管在边缘检测的第一步对图像进行了平滑,但非极大值抑制幅值图像
N[i,j]仍会包含许多由噪声和细纹理引起的假边缘段。实际中,假边缘段的对比度一般是很小的。上一页下一页返回7.3边缘检测2)阈值化减少假边缘段数量的典型方法是对
N[i,j]使用一个阈值,将低于阈值的所有值赋零值。对非极大值抑制幅值进行阈值化的结果是一个图像
I[i,j]的边缘阵列。阈值化后得到的边缘阵列仍然有假边缘存在,原因是阈值τ太低(假正确)以及阴影的存在,使得边缘对比度减弱,或阈值τ取得太高而导致部分轮廓丢失(假错误)。选择合适的阈值是困难的,需要经过反复试验。一种更有效的阈值方案是选用两个阈值即双阈值算法。上一页下一页返回7.3边缘检测Canny算子边缘检测算法步骤如下。(1)用高斯滤波器平滑图像。(2)用一阶偏导的有限差分来计算梯度的幅值和方向。(3)对梯度幅值应用非极大值抑制。(4)用双阈值算法检测和连接边缘。Canny算子特点:低误判率,很少把边缘点误认为非边缘点;高定位精度,即精确地将边缘点定位在灰度变化最大的像素上。(5)抑制虚假边缘。Canny算子较为简单,而且考虑了梯度方向,提取的边缘较完整,且边缘的连续性很好。上一页下一页返回7.3边缘检测例7.7各种算子法边缘检测比较。图
7.16
是
Lena
图像分别采用不同算子进行边缘检测结果,从检测的结果可以看出,Roberts算子简单直观,但边缘检测图里存在有伪边缘;Sobel算子和Prewitt算子能检测出更多的边缘,但也存在有伪边缘且检测出来的边缘线比较粗。LoG算子能检测出绝大部分边缘,边缘也基本上是单像素宽,但是边缘不连续情况较严重并且存在误检。Canny算子能较好地检测出边缘,但是检测出的边缘也存在不是单像素宽等问题。综上所述,梯度算子法边缘检测就是采用模板运算方式,将模板在图像上移动并在每个位置对应中心像素的梯度值。这种边缘检测算法主要应用于边缘灰度值过渡比较尖锐且图像中噪声比较小时,检测效果较好。梯度运算是一种不受施加运算方向限制的算子,既能检测出边缘的存在(幅度突变),又与施加运算的方向无关。上一页返回7.4阈值分割7.4.1灰度阈值法阈值分割法是一种简单的基于区域的技术,利用同一区域具有某种灰度特性(或相似的组织特性)进行分割。适用于物体与背景有较强对比的情况,且背景与物体的灰度比较单一情况,但它没有考虑像素空间关系,对噪声和灰度不均匀很敏感。灰度阈值法是一种最常用同时也是最简单的分割方法。它是把图像的灰度分成不同的等级,选取一个适当的灰度级阈值,然后将每个像素灰度和它进行比较,将灰度点超过阈值的像素点重新分配以最大灰度(如255),低于阈值的分配以最小灰度(如0),那么,就可以组成一个新的二值图像,并成功地把目标从背景中分割开来。下一页返回7.4阈值分割具体的图像灰度阈值化处理实质是一种图像灰度级的非线性运算,通过设定某一阈值,可以将图像分成两部分:大于阈值的部分和小于阈值的部分,从而把图像中目标和背景分割开来。例如,若图像f
(x,
y)的灰度范围为[
f
1,f
2],那么在f
1,f
2之间选择一个灰度值T作为阈值,就可以有两种方法定义阈值化后的二值图像。①令阈值化后的图像为
(7.22)
②令阈值化后的图像为
(7.23)上一页下一页返回7.4阈值分割这种灰度阈值分割也叫图像二值化处理,它的目的就是求一个阈值T,并用T将图像f
(x,
y)分成目标和背景两个区域。对于实际图像,由于目标和背景并不一定单纯地分布在两个灰度范围内,此时就需要对上述的基本阈值分割进行修正,修正方法很多,比如选择两个或以上阈值来分割,即
(7.24)或
(7.25)上一页下一页返回7.4阈值分割还有一种分割,其定义为
(7.26)这种分割称为半阈值化(semi-thresholding),这样分割的目的是屏蔽图像背景,留下物体部分的灰度信息。图7.17就是采用式(7.22)所示的方法进行图像分割的实例。由此可见:分割阈值选择的准确性直接影响分割的精度。因此正确选择分割阈值是很重要。通常采用根据先验知识确定阈值,或者利用灰度直方图特征和统计判决方法确定灰度分割阈值。上一页下一页返回7.4阈值分割7.4.2阈值的确定方法7.4.2.1根据直方图确定阈值在利用取阈值方法来分割灰度图像时,一般都对图像有一定的假设。换句话说,是基于一定的图像模型的,最常用的模型可描述为:假设图像由具有单峰灰度分布的目标和背景组成,处于目标和背景内部相邻像素间的灰度值是高度相关的,但处于目标和背景交界的两边的像素在灰度值上有很大的差别,如果一幅图像满足这些条件,它的灰度直方图基本上可看作由分别对应目标和背景的两个单峰直方图混合构成。如果这两个分布大小(数量)接近且均值相距足够远,而且两部分的均方差也足够小,则直方图应为较明显的双峰。类似地,如果图像中有多个单峰灰度分布的目标,则直方图有可能表现为较明显的多峰,如图7.18(a)、(b)所示的三峰及双峰形,选择谷点对应的灰度值T作为阈值,可以有效分割目标与背景。上一页下一页返回7.4阈值分割用直方图阈值分割法分割的算法实现如下。(1)对图像进行灰度变换,得到其灰度图像。(2)作出灰度图像的直方图。(3)通过对直方图各个谷底的分析得到阈值T。(4)规定一个阈值T,进行图像扫描,凡灰度级大于T的,颜色设置为255;凡灰度级小于T的,颜色设为0。上述直方图阈值分割法存在如下缺点:由于图像会受到噪音的干扰,最小值不是预期的阈值,而是偏离期望的值,并不能将目标准确分割出来。可以采用以下方法改进:(1)取两个峰值之间某个固定位置,如中间位置作为阈值。由于峰值代表的是区域内外的典型值,一般情况下,比选谷底更可靠,可排除噪音的干扰。(2)对噪声的处理:对直方图进行平滑处理,如最小二乘法等。上一页下一页返回7.4阈值分割7.4.2.2通过交互方式得到阈值另外一种确定阈值的方式为人机交互方式,其基本思想是在通过人机交互方式下,通过人的视觉人为确定目标(或背景)的灰度值(也称样点值)f
(x0,y0),然后通过试探设定一个参数容忍度R,将f
(x0,y0)
–R设定为阈值T,然后进行阈值化分割。具体为假设目标的灰度值(也称样点值)为f
(x0,y0),且T=f
(x0,y0)
-R,则根据阈值化分割有f
(x0,y0)≥T,也即f
(x,y)≥f
(x0,y0)
–R。可化简为
|
f
(x,y)
–
f
(x0,y0)|≤R,其中R是容忍度,可通过试探获得。因此,通过交互方式得到阈值具体方法:(1)通过光标获得样点值f
(x0,y0)。(2)选取容忍度R。(3)分割后图像为
(7.27)上一页下一页返回7.4阈值分割7.4.3阈值分割方法7.4.3.1单阈值分割在灰度阈值分割方法中,如果选取的阈值只有一个,也即用一个阈值就可以将目标分割出来,这种方法称为单阈值分割方法。即
(7.28)上一页下一页返回7.4阈值分割例7.8单阈值法分割示例。图7.19给出单阈值分割的1个示例。图7.19(a)代表1幅含有多个不同灰度值区域的图像;图7.19(b)代表它的直方图;图7.19(c)、(d)、(e)分别代表取不同阈值进行单阈值分割后结果。由图7.19可知,在选取阈值为32,77和108时,很好地把人脑图像的脑皮质,灰质,白质分别分割了出来。在对人脑MRI图像进行阈值分割时发现,由于会受到噪音的干扰,选取两峰之间某个固定位置108作为阈值,而不是谷底最小值140,效果更好,可以排除噪音的干扰。上一页下一页返回7.4阈值分割7.4.3.2多阈值分割如果图像中有多个灰度值不同的区域,那么可以选择一系列的阈值用以将每个像素分到合适的类别中去,用多个阈值分割称为多阈值分割方法。在一般的多阈值情况下,如设n个阈值关系为T0<T1<T2<…<Tn-1,取阈值分割可表示为
(7.29)上一页下一页返回7.4阈值分割例7.9多阈值分割示例。图7.20给出多阈值分割的1个示例。图7.20(a)代表1幅含有多个不同灰度值区域的图像;图7.20(b)代表它的直方图;图7.20(c)代表同时取多个不同阈值进行多阈值分割并赋伪彩后结果。注意这里的结果与单阈值分割不同,分割后图像上仍包含多个区域(根据阈值个数的不同,分割得到的区域个数也不同),不同区域用不同色彩区别。无论是单阈值分割方法还是多阈值分割方法,分割结果中都有可能出现不同区域具有相同标号区域值的情况,这是因为区域分割只考虑了像素本身的值,未考虑像素的空间位置,所以根据像素值划分到同一类的像素有可能分属于图像中不相连通的区域,这时往往需要借助一些对场景的先验知识来进一步确定目标区域。上一页下一页返回7.4阈值分割7.4.3.3最大类间方差法(Ostu法)当图像中的目标部分和背景之间的灰度差较小,即灰度直方图的双峰特性不明显时,直接用直方图就不太容易确定一个合适的阈值。可采用最大方差阈值法,这种选择阈值方法的思想最早是由Ostu提出的,又称最大类间方差法。这里介绍的最大方差阈值法是选择分割两类区域的阈值方法,当图像灰度直方图的形状有双峰但无明显低谷或者是双峰与低谷都不明显,采用最大方差自动阈值法往往能得到较为满意的结果。同时该方法较为简单,是一种广泛使用的阈值选择方法。
图7.21为包含有两类区域的某个图像的灰度直方图,设T为分离两区域的阈值。经统计可得被T分离后的区域1、区域2占整个图像的面积比以及整幅图像区域1、区域2的平均灰度分别如下。上一页下一页返回7.4阈值分割区域1的面积比
(7.30)区域2的面积比
(7.31)整幅图像的平均灰度
(7.32)上一页下一页返回7.4阈值分割区域1的平均灰度
(7.33)区域2的平均灰度
(7.34)式中,L为图像的灰度级数。上一页下一页返回7.4阈值分割整幅图像的平均灰度与区域1、区域2的平均灰度值之间的关系为
(7.35)如果同一区域具有灰度相似特性,而不同区域之间则表现为明显的灰度差异,当被阈值T分离的两个区域间灰度差较大时,两个区域的平均灰度
u1、u2
与整幅图像的平均灰度
u之差也较大,区域间的方差就是描述这种差异的有效参数,其表达式为
(7.36)式中,
表示了图像被阈值T分割后两个区域之间的方差。显然,有不同的T值,就会得到不同的区域间方差。也就是说,区域间方差、区域1的均值、区域2的均值、区域1的面积比、区域2的面积比都是阈值的函数,因此式(7.36)可写成
(7.37)
上一页下一页返回7.4阈值分割经整理,区域间方差可表示为
(7.38)被分割的两个区域间方差达最大时,被认为是两个区域的最佳分离状态,由此确定阈值T(见图7.22)为
(7.39)以最大方差决定阈值不需要人为设定其他参数,是一种自动选择阈值的方法,它不仅适用于两个区域的单阈值选择,也可以扩展到多区域的多阈值选择中去。上一页下一页返回7.4阈值分割最大类间方差法具体算法步骤如下。(1)图像空间变换,将图像由RGB空间变换到灰度空间,化为灰度图像。(2)求出图像中的所有像素的分布概率
。(3)给定一个初始阈值Th=Th0,将图像分为C1和C2两类。(4)根据公式和
分别计算两类的方差
,以及图像的整体灰度均值u。
(7.40)式中,
Nimag为图像的总体像数。上一页下一页返回7.4阈值分割(5)计算两类问题的发生概率P1,P2。
(7.41)(6)计算类间方差
和类内方差
。
(7.42)
(7.43)上一页下一页返回7.4阈值分割(7)选择最佳阈值Th=Th*,使得图像按照该阈值分为C1和C2两类后,满足
(7.44)例7.10最大类间方差方法分割示例。图7.23(a)为可视人肝脏切片原图像,图7.23(b)为最大类间方差分割结果。从图中可以看出最大类间方差法基本分割出可视人肝脏切片图像的心脏部位,但分割效果不是很好,其血管也被分割出来了。上一页返回7.5区域分割7.5.1区域生长7.5.1.1区域生长的基本思想区域生长的基本思想是将具有相似性质的像素结合起来构成区域。具体是先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素有相同或相似性质的像素(根据某种事先确定的生长或相似准则来判定)合并到种子像素所在的区域中。将这些新像素当做新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来,这样一个区域就长成了,如图7.24所示。在图像中找出一系列种子点,把其邻近像素(或子区域)归并,将这些新像素作为新的种子像素继续归并,使区域逐渐生长扩大。因为只有与初始种子点有连接的像素才会被分类,避免了不是对象部分的孤立像素点被分进对象范围,所以这种算法可以减少“误分”的像素数目。
下一页返回7.5区域分割下面以灰度性质为例,简述单连通区域生长法的算法。首先从图像中按某一准则找出初选种子点,如设图像中目标的亮度较高,则从目标中找出高亮代表点P,然后从P点出发向该点的8个相邻像素搜索,规定一个阈值T,凡是周围点的灰度与P点灰度差不超过T,则认为是该目标上的点,可赋予某一灰度标记来表示,例如赋予最亮L。这样凡是目标上的点都将逐步变为L,区域就生长增大了,用此原则再向四周搜索,直到找不到合乎准则的像素为止。上一页下一页返回7.5区域分割图7.25给出一个已知种子点进行区域生长的示例。图7.25(a)给出待分割的图像f
(x,
y),设已知有两个种子像素1和5(标为深浅不同的灰色方块),现要进行区域生长。假设这里采用的判断准则是:如果所考虑的像素与种子像素灰度值差的绝对值小于某个阈值T,则将该像素包括进种子像素所在的区域;图7.25(b)给出T=3时的区域生长结果,整幅图像被较好的分成两个区域;图7.25(c)给出T=1时的区域生长结果,有些像素无法判定;图7.25(d)给出T=6时的区域生长结果,整幅图像都被分在一个区域中了。由此可见阈值的选择很重要。上一页下一页返回7.5区域分割由上例可知,在实际应用时区域生长法需要解决3个问题。(1)选择或确定一组能正确代表所需区域的种子像素。(2)确定在生长过程中能将相邻像素包括进来的准则。(3)制定让生长过程停止的条件或规则。上一页下一页返回7.5区域分割7.5.1.2种子生长点选择种子像素的选取常可借助具体问题的特点进行。利用迭代的方法从大到小逐步收缩是一种典型的方法。如在军用红外图像检测目标时,由于一般情况下目标辐射较大,所以可选用图像中最亮的像素作为种子像素。要是对具体问题没有先验知识,则常可借助生长所用准则对每个像素进行相应计算。如果计算结果呈现聚类的情况,则接近聚类中心的像素可取为种子像素。如图7.25所示,通过对它所作直方图可知具有灰度值为1和5的像素最多且处在聚类的中心,所以可各选一个具有聚类中心灰度值的像素作为种子。一般情况下生长点的选择要使用者指定,如果要将图像划分N个区域,则需要N个生长点,每个区域Ri都对应一个生长点Si,其中i=1,2,…,N。具体在选择子像素时可以由某种规则自动选取,也可以交互选取。上一页下一页返回7.5区域分割7.5.1.3生长准则区域生长的一个关键是选择合适的生长或相似准则。生长准则的选取不仅依赖于具体问题本身,也和所用图像数据的种类有关。例如,当图像为彩色时,仅用单色的准则效果就会受到影响。另外还需考虑像素间的连通性和邻近性,否则有时会出现无意义的分割结果。一般生长过程在进行到再没有满足生长准则需要的像素时停止。但常用的基于灰度、纹理、彩色的准则大都基于图像的局部性质,并没有充分考虑生长的“历史”。为增加区域生长的能力,常需考虑一些与尺才、形状等图像和目标的全局性质有关的准则。在这种情况下,需对分割结果建立一定的模型或辅以一定的先验知识。大部分区域生长准则使用图像的局部性质。生长准则可根据不同的原则制定,而使用不同的生长准则会影响区域生长的过程。下面介绍两种基本的生长准则和方法。上一页下一页返回7.5区域分割1)基于区域灰度差区域生长方法将图像以像素为基本单位来进行操作,基于区域灰度差的方法主要有如下步骤。(1)对图像进行逐行扫描,找出尚没有归属的像素。(2)以该像素为中心检查它的邻域像素,即将邻域中的像素逐个与它比较,如果灰度差小于预先确定的阈值,就将它们合并。(3)以新合并的像素为中心,返回到步骤(2),检查新像素的邻域,直到区域不能进一扩张。(4)返回到步骤(1),继续扫描,直到不能发现没有归属的像素,则结束整个生长过程。生长示例如图7.25所示。上一页下一页返回7.5区域分割采用上述方法得到的结果对区域生长起点的选择有较大的依赖性。为克服这个问题可采用下面的改进方法。(1)灰度差的阈值为零,用上述的方法进行区域扩张,使灰度相同的像素合并。(2)求出所有邻接区域之间的平均灰度差,并合并具有最小灰度差的邻接区域。(3)设定终止准则,通过反复进行上述步骤(2)中的操作将区域依次合并,直到终止准则满足为止。当图像中存在缓慢变化的区域时,上述方法有可能会将不同区域逐步合并而产生错误。为克服这个问题,可不用新像素的灰度值去与邻域像素的灰度值比较,而用新像素所在区域的平均灰度值去与各邻域像素的灰度值进行比较,将小于某一阈值的像素合并进来。上一页下一页返回7.5区域分割2)基于区域内灰度分布统计性质这里考虑以灰度分布相似性作为生长准则来决定区域的合并,具体步骤如下。(1)把图像分成互不重叠的小区域。(2)比较邻接区域的灰度直方图,根据灰度分布的相似特性进行区域合并。(3)设定终止准则,通过反复进行步骤(2)中的操作将各个区域依次合并,直到终止准则满足。这里对灰度分布的相似性判断标准可选用以下两种方法之一[设h1(z),h2(z)分别为两邻接区域的灰度直方图]。上一页下一页返回7.5区域分割①Kolmogorov-Smirnov准则:
(7.45)②Smoothed-Difference准则:
(7.46)如果检测结果小于给定的阈值,即将两区域合并。对上述两种方法有两点值得说明。①小区域的尺寸对结果可能有较大影响,尺寸太小时检测可靠性降低,尺寸太大时测得的区域形状不理想,小的目标也可能漏掉。上一页下一页返回7.5区域分割②式(7.46)对应的检测标准与式(7.45)对应的检测标准相比,在检测直方图相似性方面比较有优势,因为它考虑了所有灰度值。例7.11区域生长示例。图7.26(a)是细胞图像,在细胞体上交互选择一个种子生长点,采用区域灰度差的生长准则,图7.26(b)是区域生长的结果。区域生长算法的关键如下。(1)选择种子点。(2)确定合并准则(常用的合并准则是基于区域灰度差方法)。(3)制定生长停止条件。上一页下一页返回7.5区域分割7.5.2区域分裂与合并法上节介绍的区域生长法是先从单个种子像素开始通过不断接纳新像素最后得到整个区域。区域分裂与合并法是首先对整幅图像进行分裂,然后依据某种规则合并性质相似的小区域,或将一个性质不一致区域分裂为更小的区域,如此递归进行,直到最后完成分割任务。实际中,常先把图像分成任意大小且不重叠的区域,然后再合并或分裂这些区域以满足分割的要求。该方法可以采用与区域生长法相类似的一致性准则,优点是不需要指定初始点或区域,并且一次可以分割出所有轮廓,但是分裂可能会使区域的边界破坏,它的研究重点是分裂和合并规则的设计。在区域合并方法中,输入图像往往先被分为多个相似的区域,然后类似的相邻区域根据某种判断准则迭代地进行合并,直到每个区域内部都是相似的。上一页下一页返回7.5区域分割7.5.2.1分裂合并法的原理当事先完全不了解区域形状和区域数目时,可采用分裂合并法。它是基于四叉树思想,把原图像作为树根或零层,将该图像等分成4个子块,作为被分裂的第一层。第一层的每个子块,若像素属性一致,则不再等分;如果属性不一致,则子块须分裂成相等的4块作为第二层,如此循环。如图7.27(a)所示。小块中的标号是这样确定的,对于第一层的4块,从左上块开始按顺时针方向标号为l,2,3,4,第二层每一块又以同样的方式标号。如第二层左上角的标号为11,12,13,14。即下—层子块的标号是在它从属的上一层的标号后添号。当子块不再往下分时,其尾数添0。上一页下一页返回7.5区域分割分裂或合并操作按下面原则进行。合并:当同一层的4块中的像素满足某一特性的均匀性时,将它们合并为一母块。例如图7.28(a)中41、42、43、44满足均匀性条件,则将它们合并为40。分裂:当第一层中的某一子块内像素不满足特性均匀条件时,将它们分裂成4个子块。例如图7.28(a)中21子块不满足均匀性条件,则将21子块分裂为211、212、213、214。如图7.28(b)所示子块分裂。某一特性的均匀性可以是灰度的均匀性,也可以是某种纹理特征的均匀性。上一页下一页返回7.5区域分割下面介绍分裂合并的具体步骤:(1)初始分割。把一幅图像分裂至第二层,子块数n=16,子块标号如图7.29(a)。(2)合并处理。按预先给定的合并原则,对第二层的每4个进行检查,假定子块21、22、23、24符合合并准则,合并后标记为20,如图7.29(b)。(3)分裂处理。对其他12个子块检查发现,原标号为13、31、41、42和43的子块内像素不符合均匀性规则,故将它们分别分成4个子块。经1次合并和5次分裂后的结果见图7.29(b)。(4)组合处理。经上述步骤后,图像共分成28块。然后以每块为中心,检查相邻各块,凡符合特征均匀性的再次合并。如图7.29(c)所示,组合处理后变成7块。上一页下一页返回7.5区域分割(5)消失小区。对图7.29(c)中标号为⑤和⑦的两个小区,与相邻大块比较,按它们对邻近大块的均匀性程度分别归并到区号为④和⑥中去,经这样处理后的输出结果为5个区域,见图7.29(d)。究竟一幅图像初始分割为多少层,视图像大小而定。另外在“消失小区”时,会给区域边缘带来误差。与前面谈到的一些区域分割方法相比,此方法的算法较复杂。但对复杂图像来说,效果很好。而且特征均匀性的条件,除用子块灰度特征外,对纹理特征也适用。上一页下一页返回7.5区域分割7.5.3分水岭分割分水岭算法(WatershedAlgorithm)是利用图像形态学、基于区域的分割技术,其广泛应用于医学图像处理、视频处理等领域。它将图像中每个物体(包括背景)都看做是单独的部分,并要求在每个物体的内部至少要有一个标记(或种子点)。标记是根据面向应用的关于该物体的知识,操作者手工或通过自动程序选择的。物体经标记后就可用形态的分水岭变换进行区域增长。上一页下一页返回7.5区域分割Watershed是地形学中的经典概念。在图像处理领域,灰度图像可被视为地形表面,图像中每个像素的灰度代表这点的高度,分水岭便自然被引入到图像处理中。可以设想,图像中的局部最小值为地形表面的洞,然后慢慢将地形表面浸入一个湖中。从最小值开始,水会逐渐充满各个不同的聚水盆地。在来自两个不同局部最小值的水要合并的像素点处,建立一个堤坝。随着这个过程的继续,等到结束时,每个局部最小值会被堤坝完全包围。所建立堤坝的全体便对应这个图像的分水岭,如图7.30所示。上一页下一页返回7.5区域分割将分水岭的概念应用到图像分割中。假设待分割的图像由目标和背景组成,这样,图像的背景和目标的内部区域将对应梯度图中灰度较低的位置,而目标边缘则对应了梯度图中的亮带,称梯度图像中具有均匀低灰度值的区域为极小值区域(一般分布在目标内部及背景处)。水面从这些极小区域开始上涨,当不同流域中的水面不断升高到将要汇合在一起时(目标边界处),便筑起一道堤坝,最后得到由这些坝组成的分水线,图像也就完成了分割。上一页下一页返回7.5区域分割为了理解分水岭分割的思想,可以把图像中明亮的像素看作处于水中的山头,黑暗的像素看作山谷。与简单的阈值分割不同,分水岭分割算法是一种自适应迭代阈值分割算法。下图是一幅图像的一个剖面,其中灰度值较高的两个峰分别对应目标O1和O2。分割的任务是将两个目标从背景中提取出来并相互分开。先用一个较大的阈值T1进行分割,可以将图像中两个目标与背景分开,只是期间的间隙过宽。如果逐渐减小阈值,目标的边界会相应扩展,最终这两个目标会碰到一起。如果不让两个目标合并,在相遇前保留的像素集合就给出两个目标的最终边界。初始阈值的选取很重要,如果选得过高,如图7.31中Tb所示,低反差目标在开始时就会被漏掉,其后在减小阈值的过程中被合并;反之,若初始阈值选得过小,如图7.31中Ta所示,目标在开始时就会被合并。另外最终阈值的选取也很重要,它确定最终边界与目标吻合的程度。
上一页下一页返回7.5区域分割1)基于梯度的分水岭变换基于梯度的分水岭变换是对图像先取梯度,梯度图上图像边界像素的灰度值比其他像素大,很适合分水岭变换分割。但是梯度算子的选择直接影响着图像分割的好坏,一个合适的梯度算子能够得到准确而平滑的目标边缘。到目前为止,用于边缘检测的算子有很多,如Sobel、Prewitt、Canny、形态梯度以及最大距离梯度(当前像素到四邻域的最大距离作为该像素的梯度)等。例7.12基于梯度的分水岭变换示例。图
7.32
是一组不同梯度算子分割效果对比,其中图
7.32(a)是一幅边缘比较模糊的图像,图
7.32(b)~图
7.32(f)分别为使用不同梯度算子进行分水岭分割的结果。可以看出Canny算子效果最好。上一页下一页返回7.5区域分割2)基于标记的分水岭变换由于待分割的图像中存在噪声和一些微小的灰度值起伏波动,在梯度图像中可能存在许多假的局部极小值,如果直接对梯度图进行生长会造成过分割现象。即使在分水岭变换前对梯度图进行滤波,存在的极小点也往往会多于原始图像中目标的数目,因此必须加以改进。实际中应用分水岭变换的有效途径是首先确定图像中目标的标记和种子,然后再进行生长,并且在生长的过程中仅对具有不同标记的标记点建筑防止溢流汇合的堤坝,产生分水线,这就是基于标记的分水岭变换。上一页下一页返回7.5区域分割基于标记的分水岭变换可分为3个步骤。(1)对原图进行梯度变换,得到梯度图。(2)用合适的标记函数把图像中相关的目标及背景标记出来,得到标记图。(3)将标记图中相应标记作为种子点,对梯度图像进行分水岭变换,产生分水线。由于目标标记的正确与否直接影响分割效果,所以利用分水岭变换进行图像分割的关键是标记提取。到目前为止,标记提取还没有一个统一的方法,一般依赖于图像的先验知识,如图像极值、平坦区域或纹理等。上一页下一页返回7.5区域分割例7.13基于标记的分水岭变换示例。图7.33是一种利用直方图峰值特性提取标记的方法,该方法将直方图中的3个峰所对应的像素作为标记,分别对应核仁、细胞核及背景3类目标,以这些标记点作为种子,在梯度图上进行区域生长,图7.33为分割的结果。总体来说,从本质上讲,分水岭分割是一种基于区域增长的分割方法,其中也融合了边缘检测技术。直接应用分水岭变换容易导致图像的过度分割,其主要缺点如下。(1)对图像中的噪声极为敏感,由于输入图像往往是图像梯度,原始图像中的噪声能直接恶化图像的梯度,易造成分割的轮廓偏移。(2)易产生过分割,由于受噪声和平坦区域内部细密纹理的影响,算法检测的局部极值过多,在后续分割中出现大量的细小区域。上一页下一页返回7.5区域分割(3)对低对比度图像易丢失重要轮廓,在这种情况下,区域边界像素的梯度值也较低,目标的重要轮廓容易丢失。因此在进行分水岭分割以前,需要对图像进行预处理加工,诸如除噪,求梯度图像,形态学重建,标记背景等,其目的就是减少小的积水盆,从而减少过分割区域的数量。还有一种就是分割后处理。即在应用分水岭分割之后对结果图像进行合并处理。如果初始分割产生过多小区域,合并处理会具有很大的运算量,所以后处理的时间复杂度经常较高,还有合并准则的确定,也是一件比较麻烦的事情,通常有基于相邻区域的平均灰度信息和边界强度信息的合并准则,不同的合并准则会得到不同的分割结果。例7.14分水岭变换在人脑分割中的应用示例。图7.34是分水岭变换与阈值分割法结合对人脑图像的分割效果,其中图7.34(a)是原图像,图7.34(b)、(c)、(d)分别为使用不同阈值进行分割得到的脑皮质和脑白质结果。上一页返回7.6霍夫(Hough)变换7.6.1Hough变换基本原理霍夫变换的基本思想是点—线的对偶性。图像变换前在图像空间,变换后在参数空间。我们知道在图像空间xy中,所有过某点(x,y)的直线一定都满足方程。
(7.47)
式中,p为斜率;q为截距。式(7.47)也可写成
(7.48)式中,如果将x,y看成参数,那么它又代表参数空间pq中过点(p,q)的一条直线。图7.35给出—个例子,图7.35(a)为图像空间,它存在一条直线。图7.35(b)是参数空间。下一页返回7.6霍夫(Hough)变换由此可知,在图像空间中同一条直线上的点对应在参数空间里是相交的直线。反过来,在参数空间中相交于同一点的所有直线,在图像空间里都有共线的点与之对应,如图7.36所示。这就是点线的对偶性。根据这个特性,当给定图像空间的一些边缘点时,就可以通过霍夫变换确定连接这些点的直线方程。霍夫变换把在图像空间中的直线检测转换到参数空间里点的检测问题,而参数空间里点的检测只要进行简单的累加统计就可以完成了。上一页下一页返回7.6霍夫(Hough)变换在具体计算时需要在参数空间pq里建立—个二维的累加数组
A(p,q)。设这个累加数组为
A,假设斜率和截距的取值范围分别为
和[Pmin,Pmax],[Qmin,Qmax]则累加数组如图7.37所示。开始时要将数组A的每个元素设置为零,然后对每一个图像空间中的给定边缘点,让p从
Pmin到
Pmax取值,根据式(7.48)得到对应的q值,将对应的数组元素A(p,q)进行累加:
A(p,q)=A(p,q)+1。对于所有的边缘点都如此计算后,根据
A(p,q)的值,就可以知道有多少点在
(p,q)处共线。找出
A(p,q)的最大值,就可以找到图像空间中的直线,而最大值
A(p,q)对应的p,q值就是直线方程的参数。上一页下一页返回7.6霍夫(Hough)变换7.6.2霍夫变换的实现
实际进行霍夫变换时,要在上述基本方法的基础上根据图像的具体情况采用一些措施,用以提高精度和速度。使用等式y=px+q表示一条直线带来的问题是,当直线接近垂直时,直线的斜率接近无限大。解决这一问题的一种方法是使用极坐标参数直线方程,即
(7.49)这样,图像平面上的一个点就对应到参数P-θ平面上的一条曲线上。其他的还是一样。上一页下一页返回7.6霍夫(Hough)变换图7.38说明了式(7.49)中参数的几何解释。ρ
表示直线到原点的垂直距离,
θ表示原点到直线的垂线与x轴的夹角。此时在参数空间建立累加数组的方法与上述方法类似。通常
θ的取值范围为[-90°,90°],假设图像的大小为N×N,则
ρ的取值范围为
。如ρ若图像大小为M×N,则
取值范围为
。但与直线不同,这个公式的轨迹是ρ
θ平面上的正弦曲线。与前面相同的是,在
上的共线点生成参量空间中交于点
(ρ’,θ’)的正弦曲线,如图7.39所示。上一页下一页返回7.6霍夫(Hough)变换根据Hough变换基本思想,可知其可以检测直线,具体的霍夫变换检测直线算法实现步骤如下。(1)坐标变换:由于垂直直线
r
为无穷大,改用极坐标形式:xcos
+ysin
=r。(2)参数平面为q、r,对应不是直线而是正弦曲线。(3)使用交点累加器,或交点统计直方图,找出相交线段最多的参数空间的点。(4)然后找出该点对应的xy平面的直线线段。上一页下一页返回7.6霍夫(Hough)变换7.6.3霍夫变换的应用7.6.3.1霍夫变换检测直线根据上述Hough变换检测直线基本思想和实现步骤,可以实现直线的具体检测。举个例子说明Hough变换检测直线的原理。设图像上的直线是y=x,先取上面的3个点:A(0,0),B(1,1),C(2,2)。可以求出,过A点的直线的参数要满足方程q=0,过B点的直线的参数要满足方程1=
p+q,过C点的直线的参数要满足方程2=2p+q,这3个方程就对应着参数平面上的
3
条直线,而这
3
条直线会相交于一点(p=1,q=0)。同理,原图像上直线y=x上的其他点[如(3,3),(4,4)等]对应参数平面上的直线也会通过点(p=1,q=0)。这个性质就解决问题提供了方法。上一页下一页返回7.6霍夫(Hough)变换首先,初始化一块缓冲区,对应于参数平面,将其所有数据置为0。其次,对于图像上每一前景点,求出参数平面对应的直线,把这直线上的所有点的值都加1。最后,找到参数平面上最大点的位置,这个位置就是原图像上直线的参数。这就是霍夫变换检测直线的基本思想。就是把图像平面上的点对应到参数平面上的线,最后通过统计特性来解决问题。假如图像平面上有两条直线,那么最终在参数平面上就会看到两个峰值点,依此类推。例7.15霍夫变换(Hough)检测直线段示例,如图7.40所示。上一页下一页返回7.6霍夫(Hough)变换7.6.3.2Hough变换检测圆圆形轮廓检测在数字图像的形态识别领域中有着很重要的地位。Hough变换不仅适用于直线检测,也适用于任何形式为f
(x,
a)=0的函数,这里x是坐标向量,a是系数向量。Hough变换为圆形轮廓检测的常用方法。在Hough变换的圆检测方法(CircleHoughTransform,CHT)中,圆的基本参数是圆心和半径,CHT就是利用三维空间参数积累来提取圆的。对于圆心坐标O
(a,
b),半径为r的圆在参数空间中的表示为
(7.50)上一页下一页返回7.6霍夫(Hough)变换在参数空间中式(7.50)表示的是一个三维锥面。它表示的物理意义是,图像空间的一个圆对应参数空间的一个点,而图像空间的一个点(x,y)对应参数空间中的三维直立圆锥。该点约束了通过该点一族圆的参数(a,b,r),如图7.41。对于图像空间中的一个圆,它的半径是不变的,圆周上的各点组成的集合在参数空间中就表现为r相等,而a,b不等的各个圆锥的集合,如图7.42所示。显然,图像空间中圆上的点映射到参数空间中的一族圆锥的交点,正好对应圆的圆心坐标和圆的半径。令
是图像中待确定圆周上的点的集合,若该圆周的圆心坐标为(a,
b),半径为r,则圆周在图像空间中的方程为
(7.51)上一页下一页返回7.6霍夫(Hough)变换显然,该方程为三维锥面,对于图像中任意确定的一点均有参数空间的一个三维锥面与之相对应。对于圆周上的任何点的集合
,这些三维锥面构成了确定方程式(7.51)中参数的锥面族,若集合中的点同在一个圆周上,这些锥面将相交于参数空间中的某一点(a0,b0,r0),这点恰好对应于图像空间中圆的圆心坐标与半径,如图7.43所示。与直线检测类似,检测圆仍然需要对参数空间进行适当量化,一般情况下,圆经过Hough变换后的参数空间是三维的,需要在参数空间中建立一个三维的累加数组A
(a,b,r),对图像中每一个边缘点计算后对A累加。上一页下一页返回7.6霍夫(Hough)变换CHT法检测圆的具体步骤如下:(1)先计算图像每点强度的梯度信息,然后根据适当阈值求出边缘。(2)再计算与边缘上的每一点像素距离为r的所有点(a,b),同时依据图像的大小分别计算参数a,b,r的最大值和最小值,建立三维离散的参数空间,参数空间的大小由a,b,r的最大值和最小值决定。(3)在参数空间中建立累加器数组A
(a,b,r),并置每一个元素为0。(4)对图像中的边缘点作Hough变换,即通过式(7.50)计算出该点在(a,b,r)三维网格上的对应曲线,同时将相应的(a,b,r)立方体小方格的累加器加1,即A
(a,b,r)=A
(a,b,r)+1。(5)找出对应图像共圆周点的累加器上的局部最大值,这个值就提供了图像平面上共圆周点的圆心以及半径参数。上一页下一页返回7.6霍夫(Hough)变换(6)改变r再重复上述过程,当对全部边缘点变换完成后,对三维阵列的所有累加器的值进行比较,其峰值小格的坐标就对应着图像空间中圆形边界的圆参数(a,b,r)。由于图像的离散化所带来的误差,在具体的计算过程中,可以将式(7.52)改写为
(7.53)其中ζ
是考虑到对图像进行数字化和量化的补偿。在计算过程中可以将参数r设为递增变量,每一步迭代都先固定r,在垂直与r的(a,
b)平面上求对应于圆心为(xi,
yi)的圆周各点,并将轨迹上的点在与此平面映像的一个三维累加数组A
(a,b,r)上的相应点上累加。r从0开始递增直到图像平面所能容纳的上限,每次递增都有一平面图像与之对应,对于图像上的点(xi,
yi),a和b的变化范围均为2r。上一页下一页返回7.6霍夫(Hough)变换对于Hough变换来说,参数空间不超过二维,变换的效果是很理想的,然而,当参数空间超过二维时,这种变换需要消耗大量的时间和存储资源,使Hough变换仅仅在理论分析上是可行的,而在实际应用中几乎不可能实现。这时就需要通过各种方法来降低参数空间的维数。如果由先验知识可以确定圆的半径或者能确定半径的变化范围,则可以有效减少计算过程的时间和空间开销。
对于图像中的圆,如图7.44所示,(a,
b)为圆心,q
为边缘点(xi,
yi)的梯度方向,且边缘点的梯度方向都是指向圆心的。易知该点的梯度信息为
(7.54)上一页下一页返回7.6霍夫(Hough)变换则圆心的计算公式就可以表示为
(7.55)因此,可以利用边缘像素点的局部梯度信息适当减少计算量,并且可以提供较高的圆心位置估计精度。先对原始图像实施边缘提取,求取像素的灰度变化梯度,按预先给定的梯度阈值对梯度图像二值化,对梯度幅值大于阈值的像素记录其梯度方向并将其置为1,梯度幅值小于阈值的像素置0。过每一非0像素并沿其梯度方向在相应的二维累加阵列各单元进行加1操作,对所有非0像素进行上述处理后,累加阵列中的局部最大值就代表了圆心的位置。该方法的实质是把圆检测Hough变换的累加数组从三维降到二维,并且将传统方法的一对多映射修改为一对一映射,这种方法已基本默认为圆检测的标准Hough变换。上一页下一页返回7.6霍夫(Hough)变换由此可见,Hough变换是一种用来在边缘增强处理后的图像中,提取边缘特征的简便而有效的方法,它能够提取直线、圆、椭圆、二次曲线甚至是任意形状的边缘。例7.16霍夫变换检测圆示例,如图7.45所示。类似的还有检测圆弧、椭圆、矩形、正方形、长方形等的霍夫变换。例7.17霍夫变换检测椭圆示例,如图7.46所示。例
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第三单元第1课《独特的民居》教学课件-2025-2026学年人美版(2024)初中美术七年级下册
- 深圳市龙华区应急管理协会注塑机安全防护技术措施课件
- 中班体育活动教案5篇-体育活动教案中班
- 2025-2026学年河南省郑州市高三(最后冲刺)化学试卷(含答案解析)
- 2.2.2边界框标注-监控场景行人检测
- 某麻纺厂质量事故调查办法
- 某化妆品厂产品配方管理规范
- 某纸业公司废纸回收办法
- 2026年文言文翻译中的逻辑连贯技巧
- 防火卷帘操作和维护保养规程
- 2026年北京市海淀区初三下学期一模语文试卷及答案
- (二模)2026年广州市普通高中高三毕业班综合测试(二)物理试卷(含答案及解析)
- 2025年全国专利代理师资格考试(专利法律知识)复习题及答案一
- 哈三中2025-2026学年度下学期高二学年4月月考 英语(含答案)
- XX 智能科技有限公司估值报告
- 2025年长沙市芙蓉区事业单位真题
- 2026年个人履职尽责对照检查及整改措施
- 2026年上海市浦东新区高三下学期二模政治试卷和答案
- 《生态环境法典》与排污许可深度解读
- 学堂在线面向未来社会的服务设计与管理章节测试答案
- 沈局工作制度
评论
0/150
提交评论