所谓人脸检测,即对环境中特定的人脸部位进行图像采集,并随之进行必要的图像预处理。
图4-1 人脸识别技术应用实例
(a)单位员工出勤管理;(b)地铁入口闸机人脸识别系统;(c)多目标人脸识别与属性分析;(d)人证识别比对系统
1.人脸检测及其预处理
在采集人脸图像中需定位出人脸的具体位置。人脸检测通常采用人脸的最小外接矩形表示人脸大小与位置(见图4-2)[25]。图像的基本处理方法包括图像增强与滤波。图像增强的目的在于改善图像的视觉效果,便于人工或机器对图像的观察、分析和处理。从增强作用域出发,可以将图像增强分为空间域增强和频率域增强两种方法。前者直接对图像各像素进行处理;后者是对图像经傅里叶变换后的频谱成分进行处理,然后再通过傅里叶逆变换获取所需的图像。至于何时采用何种增强方式必须根据景物对象的环境条件和对图像处理、分析的技术目标来确定。滤波则有低通与高通两种之分,低通能够使图像得到平滑,高通能够使图像得到锐化。
图4-2 人脸检测
1)空间域增强
空间域增强算法包括灰度变换、直方图修正、局部统计、图像平滑和图像锐化等算法。
(1)灰度变换。
灰度变换用于调整图像的灰度动态范围或图像对比度,具体通过修改像素值达到增强图像的目的。修改是通过各像素单独进行的,因此又称为点处理运算。
令像素坐标(i,j)的原像素灰度值为r(i,j),r∈[a b],a、b为原像素的灰度等级。通过变换函数T(·)能够实现像素变换结果S(i,j)=T[r(i,j)],S(i,j)∈[a′ b′],a′、b′为经变换后像素的灰度等级。如T(·)采用线性变换,此时
在曝光不足或曝光过度的情况下,图像灰度可能会局限在一个很小的范围内。此时,看到的图像可能是一幅模糊不清、似乎没有灰度层次的图像。采用线性变换对图像中的像素灰度进行线性拉伸,能够有效地改善图像的视觉效果。
以上所述为全幅图像的线性变换,此外,还有分段线性变换和非线性变换、伽马校正变换和非线性曲线变换等方法,其实质就是对变换函数T(·)采用不同的表达方式。
(2)直方图修正。
直方图修正法是以概率论为基础的通过修改直方图来增强图像的一种方法。灰度直方图反映了数字图像中每一灰度级与其出现频率间的关系,它能描述该图像的概貌。直方图修正法包括直方图均衡化及直方图规定化两类。
第一类,直方图均衡化。这是将原图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。
设f(i,j)和g(i,j)分别表示像素坐标(i,j)归一化了的原图像灰度和经直方图修正后的图像灰度,f(i,j)∈[0,255],g(i,j)∈[0,255],即代表像素坐标灰度级从0到255。对于任一个f(i,j)值,都可产生出一个g(i,j)值,且
式中的变换函数G(·)满足下列条件:G(·)在0≤f(i,j)≤255内为单调递增函数,并保证灰度级从黑到白的次序不变,且有0≤g(i,j)≤255,即确保映射变换后的像素灰度在允许的范围内。
根据概率理论,当f(i,j)和g(i,j)的概率密度分别为Pf(f)和Pg(g)时,随机变量g(i,j)的分布函数Fg(g)有如下关系:
式中,G-1(g)表示对式(4-2)的逆运算。
由此可见,输出图像的概率密度函数可以通过变换函数G(·)控制原图像灰度级的概率密度函数得到,因而改善原图像的灰度层次,这就是直方图修正技术的数学基础。
令,f(i,j)和g(i,j)的离散函数分别为rk和Sk,则式(4-2)的离散化表达式为
式中,T(·)为变换函数;rk代表原图像的灰度级;Sk代表rk经直方图均衡化后的灰度级,k=1,2,…,L;L为当前统计灰度级,L∈[0,255];n为图像中像素总数;nl为第l个灰度级出现的次数;「·」为向下取整,即取小于运算结果的最大整数。
在实际运算中,可以根据式(4-5)计算图像中欲均衡区域各个灰度级像素点所对应的均衡化后的映射值,并将映射值替代该灰度级像素点均衡化前的像素值,从而获得一幅全新的灰度均衡化图像,进而使图像获得明显的增强。
例:以一幅3×3像素的简单图片为例,来说明灰度直方图均衡化的算法。
图4-3中的9个像素的灰度级为均衡化前的数值。从图中可以看出,像素灰度级50、100、200出现的次数分别为3、4、2,由式(4-5)获得其灰度映射值为
图4-3 均衡化前灰度级
用灰度映射值来修改对应的原始灰度值,即获得图4-4所示的结果。采用这种映射变换后的像素灰度级数值将能够生成新的灰度直方图均衡化后的图像。
当然,在黑白图像增强处理过程中,有时还包括灰度级插值,最简单的插值方法是最近邻插值,即选择离它所映射到的位置最近的输入像素的灰度值为插值结果。
图4-4 均衡化后灰度级
第二类,直方图规定化。在某些情况下,并不一定需要具有均匀直方图的图像,有时需要具有特定直方图的图像,以便能够增强图像中某些灰度级。
直方图规定化方法就是针对上述思想提出来的。直方图规定化是使原图像灰度直方图变成规定形状的直方图而对原图像进行修正的增强方法。可见,它是对直方图均衡化处理的一种有效扩展。可以说,直方图均衡化处理是直方图规定化的一个特例。
图像直方图规定化算法的基本思想在于原图和经直方图规定化修正后的图像灰度分布概率密度相等,因此可以将原图的直方图均衡化所求得的灰度分布概率密度作为直方图规定化修正后图像灰度分布概率密度,对直方图规定化修正图,再通过直方图均衡化变换函数的逆运算,来求取直方图规定化图像。
假设Pf(f)和分别表示已归一化的原始图像灰度分布概率密度函数和希望得到的图像灰度分布概率密度函数,且希望得到的图像可能进行的直方图均衡化变换函数为
式中,Pz(z)为要达到的直方图规定化修正图z(i,j)的灰度分布概率密度。
首先,对原始图像按式(4-2)做直方图均衡化处理得到的图像灰度分布概率密度Pg(g);其次,令=Pg(g),求取直方图均衡化变换函数Z[Pz(z)];最后,以g替代,代入式(4-7)的逆变换公式
因此,求得直方图规定化修正图灰度图像z(i,j)。
必须指出,利用直方图规定化方法进行图像增强的主要困难在于要构成有意义的直方图,因为图像经直方图规定化后,其增强效果要有利于人的视觉判读或便于机器识别。
(3)局部统计算法。
实现局部统计算法的最简单方法是采用均值和方差运算。假定,将原始图像灰度均值为m、标准偏差为σ的直方图变换为均值为m、标准偏差为σ的直方图,则灰度变换公式如下:
式中,fin、fout分别为原图像和变换后图像的像素灰度值。
(4)图像平滑。
任何一幅原始图像,在获取和传输的任何过程中,均会受到各种噪声的干扰,使图像恶化、质量下降、图像模糊、特征湮没,势必不利于图像的分析。为了抑制噪声、改善图像质量所进行的处理称为图像平滑或去噪。它同样可以分别在空间域和频率域中进行。
局部平滑法。局部平滑法是一种直接在空间域上进行平滑处理的技术。假设图像是由许多灰度恒定的小块组成,相邻像素间存在很高的空间相关性,而噪声则是统计独立的。因此,可用邻域内各像素的灰度平均值来代替该像素原来的灰度值,实现图像的平滑。
设f(i,j)为一幅M×N邻域图像,平滑后的图像为g(i,j),则有
其中,M、N分别为以f(i,j)为中心的平滑邻域大小。
必须指出,该算法的优点是运算简单,但它的主要缺点是在降低噪声的同时会使图像模糊,特别在边缘和细节处,而且邻域越大,在去噪能力增强的同时,模糊程度越加严重。
为克服简单局部平滑法的弊病,可以采用许多保存边缘和细节的局部平滑算法。它们的出发点都集中在如何选择邻域的大小、形状和方向,参加平滑的点数以及邻域各点的权重系数等,如超限像素平滑法、中值滤波、灰度相近邻点平滑法等均是对上述算法的改进。
超限像素平滑法。该方法将f(i,j)和邻域平均g(i,j)差的绝对值与选定的阈值τ进行比较,根据比较结果决定点(i,j)的最后灰度(i,j),即
与局部平滑法相比,该算法对抑制椒盐噪声比较有效,对保护仅有微小灰度差的细节及纹理也有效。但是,随着邻域增大,去噪能力增强,模糊程度也会有所增大。为了既能抑制椒盐噪声,又能降低模糊程度、保存细节,可以采用中值滤波法对图像进行增强。
可以说,中值滤波法实际上是超限像素平滑法的一种变异,其算法步骤如下:第一步,将模板中心与像素位置重合;第二步,读取模板下各对应像素的灰度值;第三步,将这些灰度值从小到大排成一列;第四步,找出这些值里排在中间的一个;第五步,将这个中间值赋给模板中心位置像素。中值滤波器的消除噪声效果与模板的尺寸和参与运算的像素数有关,图像中尺寸小于模板尺寸一半的过亮或过暗区域将会在滤波后被消除。
灰度相近邻点平滑法。该算法的出发点是在M×N的窗口内,属于同一集合体的像素,它们的灰度值将高度相关。因此,可用窗口内与中心像素的灰度最接近的K个相邻像素的平均灰度来代替窗口中心像素的灰度值。这就是灰度相近邻点平均法。较小的K值使噪声方差下降较小,但保持细节效果较好;而较大的K值使平滑效果较好,但会使图像边缘模糊。实验证明,对于3×3的窗口,取K=6为宜。
(5)图像锐化。
对图像的识别过程,经常需要突出边缘和轮廓信息,尤其是因镜头运动而产生模糊的图像。图像锐化就在于增强图像的边缘或轮廓。
图像平滑是通过积分过程使得图像边缘模糊,图像锐化则是通过微分过程而使图像边缘突出和清晰。常用的图像锐化方法有梯度锐化法和Laplacian增强算子算法两种。
梯度锐化法。梯度锐化法是图像锐化中最常用的一种方法。图像f(i,j)在(i,j)点的灰度梯度定义为
对于离散的图像而言,常用梯度大小的概念,因此往往直接将梯度的大小习惯称为“梯度”,并且一阶偏导数采用一阶差分近似表示,即
为简化运算,经常采用梯度算子算法,即
或
拉普拉斯(Laplacian)增强算子算法。Laplacian算子是线性二阶微分算子,即
对离散的数字图像而言,二阶偏导数可用二阶差分近似,此时,Laplacian算子表达式为
Laplacian增强算子为
式中,g(i,j)为经Laplacian增强算子锐化后的图像灰度。
2)频率域增强算法
图像的平滑除了在空间域中进行外,还可以在频率域中进行。频率域增强算法包括低通滤波、高通滤波和同态滤波增强等算法。
假定原图像为f(i,j),经傅里叶变换为F(u,v),频率域增强就是选择合适的滤波器H(u,v)对F(u,v)的频谱成分进行处理,获得处理后的傅里叶函数G(u,v),即
然后再将G(u,v)经傅里叶逆变换得到增强后的图像g(i,j)。
(1)低通滤波增强算法——频率域平滑法。
由于噪声主要集中在高频部分,为去除噪声改善图像质量,通常采用低通滤波器H(u,v)来抑制高频成分、通过低频成分,然后再进行傅里叶逆变换获得滤波图像,就可达到平滑图像的目的。常用频率域的低通滤波器H(u,v)有理想低通滤波器、Butterworth低通滤波器、指数低通滤波器和梯形低通滤波器四种。
理想低通滤波器。设傅里叶平面上理想低通滤波器离开原点的截止频率为D0,则理想低通滤波器的传递函数为
式中,D0为非负整数;D(u,v)为从点(u,v)到频域坐标原点的距离,即
由于高频成分包含大量的边缘信息,因此采用该滤波器在去除噪声的同时将会导致边缘信息损失而使图像边缘模糊,因此有时尚需寻求其他更为适宜的滤波方法。
Butterworth低通滤波器。n阶Butterworth滤波器的传递函数为
指数低通滤波器。指数低通滤波器是图像处理中常用的另一种平滑滤波器,其传递函数为
采用指数低通滤波器滤波在抑制噪声的同时,图像边缘的模糊程度较Butterworth滤波器产生的模糊程度要大些,但是,指数低通滤波器与Butterworth滤波器均无明显的振铃效应。
常见的高斯滤波器属于指数低通滤波。高斯滤波器的基本思想是将高斯核函数与原始信号进行卷积后得到滤波输出的信号。
设一维高斯函数为
其一阶导数为
其中,g(1)(τ,σ)称为高斯滤波器。函数f(τ)被g(1)(τ,σ)滤波的结果S(τ,σ)为
式中,*为卷积运算符;σ为高斯函数的标准方差。高斯滤波器的平滑作用可以通过σ来控制,即可以通过改变高斯标准方差σ的值来调整信号的平滑程度,σ值越大,平滑的效果越好。
高斯卷积是一种线性的图像平滑滤波过程,其卷积模板是一种线性模板,可以直接从二维零均值离散高斯函数计算模板权值,其二维零均值离散高斯函数表达式为
梯形低通滤波器。梯形低通滤波器是理想低通滤波器和完全平滑滤波器的折中,其传递函数为
它的性能介于理想低通滤波器和指数滤波器之间,滤波的图像有一定的模糊和振铃效应。必须指出,在频率域中选用何种低通滤波器来增强图像,尚需根据生成图像的环境条件来确定。
(2)高通滤波增强算法——频率域锐化法。
图像的边缘、细节主要位于高频部分,而图像的模糊是由于高频成分比较弱产生的。频率域锐化就是为了消除模糊,突出边缘。采用高通滤波器能够让高频成分通过、低频成分削弱,经过高通滤波后的图像数据再经傅里叶逆变换便得到边缘锐化的图像。常用的高通滤波器有理想高通滤波器、Butterworth高通滤波器、指数高通滤波器和梯形高通滤波器四种。
理想高通滤波器。二维理想高通滤波器的传递函数为
Butterworth高通滤波器。n阶Butterworth高通滤波器的传递函数定义如下:
指数高通滤波器。指数高通滤波器的传递函数为
梯形高通滤波器。梯形高通滤波器的传递函数为
四种高通滤波函数的选用原则类似于低通滤波器的选用原则。比较四种高通滤波,理想高通有明显振铃效应;Butterworth高通滤波效果较好,但计算复杂,其优点在于允许少量低频通过,H(u,v)是渐变的,振铃效应不明显;指数高通效果比Butterworth差些,振铃效应不明显;梯形高通会产生微振铃效应,但计算简单,较常用。一般来说,不管在图像空间域还是频率域,采用高频滤波不但会使有用的信息增强,同时也使噪声增强,因此不能随意使用。
3)图像边缘检测
所谓图像边缘是指图像中表达物体的周围像素灰度发生阶跃变化的那些像素集合,它存在于目标与背景、目标与目标、区域与区域、基元与基元之间。物体的边缘在图像中以局部不连续性作为一种表现特征。从本质上讲,物体边缘意味着一个区域的终结和另一个区域的开始。图像边缘在图像分析与视感检测中都是一项十分重要的特征信息。
图像边缘具有方向和幅度两个特性,通常延边缘走向的像素变化平缓;沿垂直于边缘走向的像素变化剧烈,因此可以利用图像边缘的这两个特性来判断边缘像素点的分布与走向。对边缘特征的描述一般包含:①边缘点,即紧邻该点的两边像素灰度值与其有显著的不同;②边缘法线方向,即灰度变化最剧烈的方向;③边缘方向,即与边缘法线垂直的方向,亦即目标边界的切线方向;④边缘位置,即边缘所在的坐标位置;⑤边缘强度,即沿边缘法线方向局部灰度的变化强度。
当前学术界将物体边缘分成两类:其一,阶跃边缘,其两边像素的灰度值有显著不同;其二,屋顶边缘,被测像素点位于灰度值从增加到减少的变化转折处。不同类的边缘特征分别对应景物的不同物理状态。
图像边缘检测是所有基于边界的图像分割算法中最基本的处理方法,是对图像处理、图像分析、模式识别、机器视感检测的基本步骤之一。通常情况下,人们可以将信号中的奇异点和突变点认为是图像中的边缘点,其附近灰度的变化情况可从它相邻像素灰度分布的梯度反映出来。因此,根据这一特点,人们提出了许多边缘检测算法,主要是以微分法为基础,结合模板手段提取图像边缘。常用的边缘检测算法包括Roberts算子、Sobel算子、Prewitt算子以及Laplacian算子等算法。这些方法大多是以待处理像素为中心的邻域作为灰度分析的基础,以便实现对图像边缘的提取。迄今为止,图像边缘检测的算法多达成千上万种,就其较为经典的算法而言,主要有基于灰度直方图的门限化边缘检测、基于梯度的边缘检测、Laplacian算子和Canny边缘算子检测等。
(1)门限化边缘检测。
所谓门限化,就是将灰度根据主观愿望分成两个或多个等间隔或不等间隔灰度区间,用门限确定其区域而获得区域的边界。
基于灰度直方图的门限化边缘检测方法是设置灰度的二值状态,借助直方图使用门限T根据指定的H1和H2灰度级将直方图分割成分别属于两个灰度级的两部分A和B,确定物体图像(A)和背景(B)的灰度突变位置。门限化方法可通过两次扫描与一次合成来完成,具体步骤如下。
第一步,扫描图像f(i,j)的每一行(i=0,1,2,…,n-1),将所扫描的行中的每个像素点f(i,j)与相邻列像素点f(i,j-1)进行比较,按下式产生中间图像行像素直方图g1(i,j)。
第二步,扫描图像f(i,j)的每一列(j=0,1,2,…,m-1),将所扫描列中的每个像素点f(i,j)与相邻行像素点f(i-1,j)进行比较,按下式产生中间图像列像素直方图g2(i,j)。
第三步,将g1(i,j)与g2(i,j)合成后,即得到物体的边界图像(i,j)。
式中,A∈[0,255],B∈[0,255];当处于A区域的图像取灰度最高等级为255,处于B区域的图像取灰度最低等级为0时,则
当处于A区域的图像取灰度最高等级为0,处于B区域的图像取灰度最低等级255时,则
(2)基于梯度的边缘检测。
所谓基于梯度的边缘检测就是基于图像边缘灰度突变的特性,利用像素点梯度值来区分边缘点和非边缘点。其中,梯度阈值的选取十分重要,它是确保能否提取出真实边缘点的关键所在。基于梯度的边缘检测较适用于边缘灰度值过渡比较尖锐而且图像中噪声比较小的图像。基于梯度的边缘检测算法中最为常用的经典算子包括Roberts算子、Sobel算子、Prewitt算子、Krisch算子等。
Roberts算子。Roberts是一种利用局部差分算子寻找边缘的算子,采用的是对角方向上相邻的两个像素坐标之差。
数字图像f(i,j)的Roberts梯度有两种公式:
式中,f(i,j)是具有整数像素坐标的输入图像;GR(i,j)为f(i,j)像素点经过处理后的灰度值,其中的平方根运算使得该处理方法类似于人类视觉系统所发生的过程。计算过程中采用的模板如图4-5所示,这是2×2的模板,采用矩阵表示,即
图4-5 Roberts算子模板
图像f(i,j)像素点在两个正交方向上的梯度分别为图像与模板的卷积
必须指出,Roberts边缘算子定位精度高,在水平和垂直方向效果较好,但对噪声较敏感。
Sobel算子。Sobel边缘检测算子在数字图像的3×3子域内计算梯度
其中
,
式(4-45)和式(4-46)分别表示像素坐标在i轴和j轴方向上的微分(差分)。
Sobel边缘检测算子由图4-6所示的两个卷积核构成,图像中的每一个点都用这两个核做卷积,一个核对通常的垂直边缘响应最大,而另一个对水平边缘响应最大,两个卷积的最大值作为该点的输出值。
图4-6 Sobel算子模板
通过式(4-44)求出梯度后,可设定一个常数T,当GS(i,j)>T时,标记该点为边界点,其像素值设定为0(或255),其他的像素值设定为255(或0),运算结果是一幅边缘图像,适当调整常数T的大小能够达到最佳效果。Sobel算子通常对灰度渐变和噪声较多的图像能够处理得较好。
Prewitt算子。Prewitt算子是一种边缘样板算子,利用像素点上下、左右邻点灰度差在边缘处达到极值来检测边缘,对噪声具有平滑作用。由于边缘点像素的灰度值与其邻域点像素的灰度值有显著不同,在实际应用中通常采用微分算子和模板匹配方法检测图像的边缘。
Prewitt算子的定义式如下:
其中,
与Sobel边缘检测算子一样,式(4-48)和式(4-49)也分别表示像素坐标在i轴和j轴方向上的微分(差分)。
Prewitt算子采用的模板如图4-7所示,与Sobel算子的方法一样,图像中的每个像素点都采用两个核进行卷积,取最大值作为输出。
图4-7 Prewitt算子模板
求出梯度后,一样可设定一个常数T,当GP(i,j)>T时,标记该点为边界点,其像素值设定为0(或255),其他的像素值设定为255(或0),Prewitt边缘检测算子得到的同样是一幅边缘图像,适当调整常数T的大小能够达到最佳效果。Prewitt算子不仅能检测边缘点,而且能抑制噪声的影响,因此对噪声较多的图像能够处理得较好。
Krisch算子。Krisch是方向算子,利用一组模板分别计算在不同方向上的差分值,取其中最大的值作为边缘强度,而将与之对应的方向作为边缘方向。八方向Krisch算子的模板如图4-8所示,各方向的夹角是45°。
图4-8 Krisch算子模板
Krisch边缘检测算子由图4-8中的8个卷积核组成。图像中的每个点都用8个卷积核进行卷积,每个卷积核对某个特定边缘方向做出最大响应,所有8个方向中的最大值作为边缘幅度值输出,最大响应掩模的序号构成了边缘方向检测及细化研究的编码。
(3)边缘检测Laplacian算子。
鉴于一阶导数的边缘检测算法,当所求的一阶导数高于某一阈值,可以确定该点为边缘点,但是,仅此有可能会导致检测的边缘点太多。要克服这类算法上的缺陷,可以采用一种更好的方法,就是求取梯度局部最大值对应的点,并认定它们是边缘点。一阶导数的局部最大值对应的点就是二阶导数的零交叉点。这样,通过找图像强度二阶导数的零交叉点就能找到精确边缘点。
Laplacian是各向同性二阶微分算子,它具有旋转不变性,一个二元图像函数f(i,j)的拉普拉斯变换定义为
其中,数字二阶偏微分可以近似表达为
式(4-50)的拉普拉斯变换可以用式(4-51)所表达的两个分量相加得到
常用的Laplacian算子模板如图4-9所示。必须指出,在实际应用中,一般不用Laplacian算子的原始形式进行边缘检测,主要原因是:作为一个二阶导数,Laplacian算子对噪声具有无法接受的敏感性;Laplacian算子的幅值产生双边峰,这是复杂分割不希望有的结果。
图4-9 Laplacian算子模板
同时,Laplacian算子不能检测边缘的方向。为了解决这个困难问题,可以将高斯滤波和Laplacian算子边缘检测结合在一起,形成了LoG(Laplacian of Gaussian)算子,即高斯-拉普拉斯算子,也常称为马尔算子(Marr-Hildreth)。该算子先用高斯算子对图像进行平滑,然后采用Laplacian算子根据二阶微分过零点来检测图像边缘。
高斯-拉普拉斯算子通常具有
式中,σ是方差;r是离原点的径向距离,即r2=i2+j2。
高斯-拉普拉斯算子是两种算子的结合,既具备高斯算子的平滑特点,又具备拉普拉斯算子锐化特点。平滑和锐化、积分和微分是一对矛盾的两个面,统一在一起后就变成了最佳因子。因为图像中包含噪声,平滑和积分可以滤掉这些噪声,消除噪声后再进行边缘检测的锐化和微分,因此能够得到较好的效果。
随着新理论与新算法的不断出现,一些新的图像边缘检测方法也相应出现。这些新的算法对噪声有很好的抑制作用,而且能够更好地检测边缘细节信息,如Canny边缘算子、数学形态学法、小波分析法、神经网络法、模糊算子法及多尺度边缘检测法等。
(4)Canny边缘算子。
Canny算子是一类最优边缘检测算子,它在许多图像处理领域得到了广泛应用。Canny边缘算子的检测指标是:低误判率,尽可能多地标识出图像中的实际边缘;高定位精度,标识出的边缘要尽可能与实际图像中的实际边缘接近;抑制虚假边缘,即最小响应,图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。(www.daowen.com)
为了满足这些要求,Canny使用了变分法,最优检测使用四个指数函数项的和表示,这是一种寻找满足特定功能函数的方法。Canny边缘算子的基本思路如下。
第一,降噪。任何边缘检测算法都不可能在未经处理的原始数据上很好地工作,所以第一步是对原始数据与高斯卷积核做卷积,得到的图像与原始图像相比有些轻微模糊。这样,单独的一个像素噪声在经过高斯平滑的图像上变得几乎没有影响。
第二,寻找图像中的亮度梯度。图像中的边缘可能会指向不同的方向,所以Canny算法使用4个卷积核检测水平、垂直以及对角线方向的边缘。原始图像与每个卷积核所做的卷积都存储起来。对于每个点我们都标识在这个点上的最大值以及生成的边缘方向。这样我们就从原始图像生成了图像中每个点亮度梯度图以及亮度梯度的方向。
第三,在图像中跟踪边缘。通过大量的实验发现,所有图像梯度直方图具有相似的统计分布规律,如图4-10所示。图中,x轴代表梯度值,y轴代表梯度数,a为梯度均值,b为能够将图像边缘与非边缘分开的一个统计量。
图4-10 图像梯度直方图分布曲线
梯度值较低的主体高峰部分对应图像中的非边缘区域,而梯度值较高的平缓尾部对应边缘区域。在概率论中,梯度均值是一个描述主体梯度值集中位置的统计特征,标准差则是一个将主体高峰与平缓尾部分开的统计特征。因此利用梯度直方图的统计特性,选择b值作为梯度阈值能在满足全局最优的原则下自适应地检测出边缘。
但是没有一个确切的值来限定多大的亮度梯度是边缘,所以Canny使用了滞后阈值。滞后阈值需要两个阈值——高阈值与低阈值。假设图像中的重要边缘都是连续的曲线,这样就可以跟踪给定曲线中模糊的部分,并且避免将没有组成曲线的噪声像素当成边缘。所以从一个较大的阈值开始,将标识出人们比较确信的真实边缘,使用前面导出的方向信息,就可以从这些真正的边缘开始在图像中跟踪整个边缘。在跟踪的时候,只要使用一个较小的阈值,就可以跟踪曲线的模糊部分,直至回到起点。
一旦这个过程完成,就得到了一个二值图像,可以确认每点是否是一个边缘点。同时,通过获得亚像素精度边缘的改进能够实现在梯度方向检测二阶方向导数的过零点。在图像中寻找边缘的具体计算步骤如下。
第一步,计算图像f(i,j)像素点的梯度幅值和梯度方向。行方向的偏导数:
其中,I(i,j)为像素点(i,j)的灰度值,余类推。
像素点(i,j)的梯度幅值M(i,j)可用下式计算
像素点(i,j)的梯度方向为
第二步,抑制非局部极大值。对每一个梯度强度值非零的像素点(i,j),查找沿自身边缘方向,即梯度方向θ(i,j)的两相邻像素点。如果该像素点的梯度幅值M(i,j)小于其梯度方向上相邻像素点对应值,则标记此点为非边缘点,并置其梯度值为零,否则作为候选边缘点。
第三步,选取自适应双阈值。对图像进行非局部极大值抑制后统计其梯度,计算出梯度均值D和梯度方差σ,将两者的和作为边缘检测的高阈值Th,即,Th=D+σ;以0.4Th作为低阈值Tl,即Tl=0.4×Th。当场景光照不均匀时,可将图像分为若干幅子图,在各幅子图中利用其各自的梯度直方图按照Th和Tl进行自适应的阈值选择。同时,为避免检测到的边缘不连续,还允许各幅子图有部分重叠。
第四步,边缘连接。首先,对经过非局部极大值抑制后的图像进行扫描,如果像素点的梯度强度值大于高阈值,则该像素点标记为边缘点;如果像素点的梯度强度值大于低阈值而小于高阈值,则该像素点标记为候选边缘点,否则为非边缘点。其次,对第一步处理所得图像进行最后扫描,如果候选边缘点与四邻域边缘点相连,则将该候选边缘点标记为边缘点,最终获得边缘检测图像。Canny边缘算子在运算过程中使用各类边缘算子,但是,其中的方法与其他边缘检测方法的不同之处在于它使用两种不同的阈值分别检测强边缘和弱边缘,并且仅当弱边缘与强边缘相连时才将弱边缘包含在输出图像中,因此这种方法较其他方法而言不容易被噪声“填充”,更容易检查出真正的弱边缘[25]。
(5)数学形态学。
数学形态学的数学基础和所用语言是集合论,数学形态学能够简化图像数据,保持它们基本的形状特性,并除去不相干的结构。数学形态学是由一组形态学的代数运算子组成的,它的基本运算有4个:膨胀、腐蚀、开启和闭合。数学形态学分为二值形态学和灰度形态学两大类,它们在二值图像和灰度图像中各有特点。运用于二值图像的形态学称为二值形态学,运用于灰度图像的形态学称为灰度形态学。基于这些基本运算还可推导和组合成各种数学形态学实用算法,用它们可以进行图像形状和结构的分析及处理,包括图像分割、特征抽取、边界检测、图像滤波、图像增强和恢复等。数学形态学的算法具有天然的并行实现结构,实现了形态学分析和处理算法的并行,大大提高了图像分析和处理的速度。
所谓结构元素是在数学形态学方法中用于收集图像信息的“探针”。当探针在图像中不断移动时,考察图像各个部分之间的相互关系,了解图像的结构特征。作为探针的结构元素,可直接携带知识,如形态、大小,甚至加入灰度和色度信息,来探测、研究图像的结构特点。
所谓膨胀运算是指将与某物体接触的所有背景点合并到该物体中的过程,过程的结果是使物体的面积增大了相应数量的点。如果物体是圆的,它的直径在每次膨胀后将增大两个像素;如果两个物体在某一点的任意方向相隔少于三个像素,它们将在该点连通起来。二值形态学中的膨胀运算对象是集合,用二值结构元素对二值图像进行膨胀的结果就是把结构元素平移后使两者交集非空的点构成一个新的集合。灰度形态学是二值数学形态学对灰度图像的自然扩展。灰度形态学的运算对象不是集合,而是图像函数。在灰度形态学中,二值形态学中用到的交、并运算将分别用最大、最小极值运算代替。灰度图像的膨胀过程可直接从图像和结构元素的灰度级函数计算出来,膨胀运算的计算是一个点一个点地进行,计算时涉及它周围点的灰度值及结构元素值,实际上是局部范围内点与结构元素中对应点灰度值之和,选取其中最大值,所以膨胀运算之后,边缘得到了延伸。
所谓腐蚀运算是消除物体所有边界点的过程,其结果是使剩下的物体沿其周边比原物体小一个像素的面积。如果物体是圆的,它的直径在每次腐蚀后将减少两个像素,如果物体在某一点处任意方向上连通的像素小于三个,那么该物体经过一次腐蚀后将在该点分裂为两个物体。用二值结构元素对二值图像进行腐蚀,结果就是把结构元素平移,使二值结构元素中包含所有二值图像的点构成一个新的集合。灰度图像的腐蚀过程同样可直接从图像和结构元素的灰度级函数计算出来,腐蚀运算也是一个点一个点地进行,某点的运算结果是它在一个局部范围内的点与结构元素中对应点的灰度值之差,选取其中最小值。可见经腐蚀运算后,边缘部位相对大点的灰度值会降低,从而边缘会向灰度值高的区域收缩。
所谓开启运算是指先腐蚀后膨胀的过程,它具有消除细小物体、在纤细处分离物体和平滑较大物体边界的作用。
所谓闭合运算是指先膨胀后腐蚀的过程,它具有填充物体内细小空洞、连接邻近物体和平滑边界的作用。
上述基于多结构元素数学形态学方法对图像进行边缘检测的具体过程如下。
第一步,选取多结构元素。令图像中心点为坐标原点(x0,y0),则方形结构元素矩阵为
式中,Bi=Bi(s,t),i=0,1,2,…,4N-1,N为自然数;(s,t)为矩阵二维像素坐标;α=180°/4N;θi是结构元素在矩阵中形成的方向角,简称方向角。
第二步,对图像进行数据变换。用B=B(s,t)结构元素对转换后的灰度图像在(x,y)点的灰度值f=f(x,y)输入图像进行灰度膨胀运算f⊕B,膨胀运算的公式为
再用B的结构元素对f的输入图像进行灰度腐蚀运算fΘB,腐蚀运算的公式为
式(4-59)和式(4-60)中,Df、DB分别是f与B的定义域。
再对上述膨胀和腐蚀运算进行结合得到形态学梯度gi(f),运算公式为
式中,i与Bi中i的取值相对应。
第三步,对形态学梯度gi(f)进行加权合成,获得合成后的形态学梯度g(f),则有
式中,i=1,2,…,M,M是方形结构元的个数;ωi是边缘检测中不同方向角的权重。
第四步,对合成后的形态学梯度(f)进行基于统计学原理的二值化处理。
首先,计算灰度图像帧平均灰度值,再以3×3像素小区域为单位计算该区域中9个像素灰度ai的平均值main,则有
然后,逐一计算该像素小区域灰度的平均方差eA
最后,逐一将像素小区域灰度平均方差eA与灰度图像帧平均灰度值进行比较,按下式确定该像素小区域取1或0:
式中,F(x,y)为灰度图像f(x,y)所对应的二值化图像;n为倍数,由实验确定。
(6)其他算法简介。
小波分析法。从信号处理的角度,图像边缘表现出信号的奇异性,而在数学上已经证明Lipschitz指数可由小波变换的跨尺度极大值计算出来,所以只要检测小波变换的模极大值即可检测出边缘。适用小波的多尺度性可以实现在大尺度下抑制噪声,可靠地识别边缘,在小尺度下精确定位。
模糊算子法。应用广义模糊算子进行边缘检测,先在原始输入图像基础上产生广义性质集P,再利用广义模糊算子产生P′,对P′进行逆变换产生x′,最后对x′做简单的闭值即可得到边缘图像输出。用广义模糊算子检测出来的边缘具有宽度小、信噪比大的优点。
神经网络法。先将输入图像映射为某种神经网络,然后输入一定先验知识——原始边缘图,再进行训练,直到学习过程收敛或用户满意为止。由于神经网络提取边缘利用了原图的已有知识,是从宏观上认识对象,微观上提取细节,所以具有很强的抗噪能力。
多尺度边缘检测法。所谓多尺度边缘检测就是有效地组合利用不同尺度的边缘检测算子,正确地检测出产生于一幅图像内的边缘。其思路是在大尺度下抑制噪声,可靠地识别边缘;在小尺度下精确定位。先分别用几个不同尺度的边缘检测算子检测边缘,再组合它们的输出结果,以获得理想的边缘。
2.图像二值化处理与图像分割
图像二值化处理是图像分割的基本方法。概括地说,所谓二值化是通过对阈值的比较,将图像的灰度按照“1”或“0”两值来表达,从而使图像显示出景物与背景的黑、白两色。
图像分割就是要将图像分为一些有意义的区域,然后对这些区域进行描述,以便提取某些目标区域图像的特征,判断图像中是否有感兴趣的目标景物。换句话说,图像分割是把图像阵列分解成若干个互不交叠的区域,每一个区域内部的某种特性或特征相同或接近,而不同区域间的图像特征则有明显差别,即同一区域内部特性变化平缓,相对一致,而区域边界处则特性变化比较剧烈。
令一致属性准则为P0,图像f(i,j)满足条件:
式中,φ为空集,P[·]为属性函数。将图像f(i,j)划分成为互不交叠的区域集{f1(i,j),f2(i,j),…,fn(i,j)}的过程称为分割。
用作图像分割的度量准则不是唯一的,它与应用场景图像及应用目的有关。如用于图像分割的场景图像特征信息有亮度、色彩、纹理、结构、温度、频谱、运动、形状、位置、梯度和模型等。实现图像分割方法很多,以下介绍一些常用的图像分割算法。
1)基于直方图谷点门限的图像二值化
所谓基于直方图谷点门限的图像二值化方法即根据图像直方图分布特性对图像进行分割。比如,当图像的灰度直方图为双峰分布时,分割比较容易,只需取其谷点作为门限值,就能将物体与背景分割开来,即
式中,为直方图谷点门限值,即直方图谷点的像素灰度级,图4-11就是一种典型的具有双峰分布特性的图像灰度直方图,其中,z为像素灰度,h(z)为像素灰度分布函数。
图4-11 图像灰度直方图
实现图像分割的方法很多,以下介绍一些常用的图像分割算法。
在此类灰度直方图中,当z∈[0,255]时,z应满足
但是,如果直方图不平滑,则谷点将无法找到,此时需要对直方图事先进行平滑处理。例如,对于论域z∈[0,255],采用“5点平滑法”,通过式(4-69)的计算,即可求得平滑后的图像灰度直方图。
式中,k∈[3,253]
2)OTSU算法
OTSU算法又称为最大类间方差法,是图像分割中基于点的全局阈值选取方法中的一种。该方法以其计算简单、稳定有效一直被广为使用,至今仍在Matlab的图像处理工具箱里作为灰度图像单阈值自动选取的标准算法。
OTSU算法以最佳门限将图像灰度直方图分割成两部分,使两部分类间方差取最大值,即分离性最大。设图像灰度级为0~255,即z∈[0,255],第z级灰度像素有nz个,总像素数为N=,则第z级灰度出现的概率为Pz=nz/N。设灰度门限值为k,则图像像素按灰度级被分为两类:
则图像总平均灰度级为
C0类的平均灰度级为
C0类的像素数为
C1类的平均灰度级为
C1类的像素数为
两类区域所占图像比例分别为
因此,图像总平均灰度又可表达为
类间方差可以表达为
联立式(4-72)~式(4-79)得
当k⊆z从0~255的灰度级之间改变时,找到能使得σ2(k)取最大值的灰度级k↔即称为最佳门限值。同时,σ2(k)称为目标选择函数。
3)最小误差图像分割
设目标像素点数占图像总像素点数的百分比为θ,则背景像素点数占图像总像素点数的百分比为1-θ。
令目标和背景灰度分布分别为P1(z)与P2(z),则图像灰度的混合概率密度为
当选定门限为T时,目标点和背景被错划的概率分别为
因此,总错误概率为
令=0,则
且
如图4-12所示,假定目标与背景的灰度直方图均遵循正态分布,即
σ1=σ2=σ时,有关系
当θ=时,是一种特例,此时
这表示目标与背景的灰度处于正态分布时,最佳门限值T(即最小误差门限值)可按式(4-88)或式(4-89)求取;否则,最佳门限值T可用式(4-85)来确定。
图4-12 目标与背景灰度分布图
3.彩色图像增强
彩色图像增强算法是在黑白图像增强算法的基础发展起来的,但是它又在描述方法上区别于黑白图像。所谓彩色空间,是表示彩色的一种数学描述方法,用来指定和产生景物及其图像的色彩,或称颜色,使景物及其图像颜色形象化。由描述彩色的数学模型所构成的数学空间称为彩色空间。不同的彩色数学模型构成不同的彩色空间,又称彩色空间模型。彩色空间模型通常采用三维模型表示,彩色空间中的每一种颜色由描述该颜色在彩色空间中位置的一组坐标参数(三个坐标参数)来指定。
各种各样的彩色空间可以适应于不同的应用场合。例如表示数字摄像机等光电设备的RGB空间、表示打印设备的CMYK空间、表示电视信号的YCbCr空间和表示人类颜色感知特性的HSV空间等。“彩色空间模型”与“彩色空间”具有同等概念,对于描述彩色图像过程,两者相互替换使用时没有任何区别。
根据彩色合成原理
彩色图像C是红R(波长700 nm)、绿G(波长546.1 nm)和蓝B(波长435.8 nm)三基色的矢量和;r、g、b分别为红R、绿G和蓝B三基色的单位矢量;R、G和B分别为三基色分量系数,亦即三基色分量亮度,又称光通量。
彩色图像在RGB彩色空间的向量[R G B]T不仅代表红、绿和蓝三基色的色彩,同时也表示三基色的亮度,RGB三色之间存在着很大的相关性。换句话说,通过[R G B]T三元素的不同取值,能够形成不同的颜色效果。
色调又称为色相,是视觉系统对光波波长的感觉,用于区别颜色的名称和种类,是最容易把颜色区分开的一种属性。色调取决于可见光谱中的光波频率(主波长),没有主波长的颜色,称为无色彩的颜色,如黑、灰、白等。
饱和度是指颜色的纯洁性,它可用来区别颜色鲜艳的程度。当一种颜色渗入其他光成分愈多时,就说该颜色愈不饱和。完全饱和的颜色是指没有被渗入白光所呈现的颜色(即单波长的纯色光)。例如,仅由单一波长组成的光谱色就是完全饱和的颜色。
亮度是一种物理属性。颜色的强度可以用不同的术语和方法来描述,如明度、亮度和光亮度。明度是一种感知属性,度量困难;亮度是一种物理属性,容易测量;光亮度是视觉对亮度的感应值,介于明度和亮度之间,可以计算,但与真正的感知特性还有一定差别。明度是视觉系统对可见物体发光(或光反射)多少的感知属性,它和人的感知有关。由于明度很难度量,因此国际照明委员会定义了一个比较容易度量的物理量,称为亮度。根据国际照明委员会的定义,亮度是用反映视觉特性的光谱敏感函数加权之后得到的辐射功率,并在555 nm处达到峰值,它的幅度与物理功率成正比。从这个意义上说,可以认为亮度就是光的强度。亮度的值用单位面积上反射或者发射的光的强度表示,单位为烛光/米2(cd/m2)。1烛光等于发出频率为540×1012 Hz辐射的光源,在给定方向的发光强度,此光源在该方向的辐射强度为瓦/球面度。亮度也可以用光通量单位流明(lumen,缩写为lm)来表示。1流明等于一烛光的均匀点光源在单位立体角内发出的光通量。对于光源,以流明和烛光1米2为单位表示光亮度时,在数值上是相等的。实际上常用指定的亮度即白光做参考,并把它标称化为1或者256个单位。
HSV彩色空间模型具有两个重要特征:第一,V分量与图像的颜色信息无关;第二,H和S分量与人眼获得颜色的方式密切相关。这些特征使得HSV模型非常适合借助人的视觉系统来感知颜色特性的图像处理算法。在HSV彩色空间模型中,对一种纯色加入白色可以改变其色浓,加入黑色可以改变其色深。同时加入不同比例的白色与黑色最终可以得到不同色调的颜色。
图像增强是指采用脉冲耦合神经网络法模拟与特征有关的神经元同步行为来展示脉冲发放现象的连接模型,对车厢内针孔摄像头实时采集到的图像进行增强。脉冲耦合神经网络法(pulse-coupled neural networks,PCNN)是一种模拟与特征有关的神经元同步行为来展示脉冲发放现象的连接模型。因此,它与视感神经系统的感知能力有天然的联系。应用于图像处理的PCNN结构模型中,待处理图像的每个像素f(i,j)对应每个神经元Nij,其中像素坐标,i=1,2,3,…,j=1,2,3,…。以Iij表示像素点f(i,j)的像素强度值,每个神经元Nij除接收来自外部的刺激Iij外,还接收来自内部网络中其他神经元的馈送输入Fij(t)和连接输入Lij(t),接着通过神经元连接强度β以乘积耦合形式Fij(t)[1+βLij(t)]构成神经元Nij的内部行为Uij(t),再通过动态阈值θij(t)与Uij(t)的比较而激励或抑制神经元的脉冲信号输出Yij(t)(又称为点火),t代表时间。
由于常规图像中边缘两边的像素亮度强度差总比区域内空间邻近的像素亮度强度差要大,因此,若采用PCNN进行二维图像处理,每个神经元与图像像素一一对应,其亮度强度值作为神经元的外部刺激,则在PCNN内部,空间邻近、强度相似的像素集群能够同步点火,否则异步点火。这在图像增强中,表现为同步点火对应的图像像素呈现相同的亮度强度值,从而平滑了图像区域;异步点火对应的图像像素呈现不同的亮度强度值,从而加大了图像区域间亮度强度的梯度,进而更加突出了图像的边缘,使得增强后的图像亮度强度分布更具有层次性。在标准的PCNN模型中,由于硬限幅函数的作用,其输出是一个二值图像帧。为了使所建立的PCNN输出映射函数能更有效地增强图像整体对比度,则基于上述的人眼视觉感知特性,采用类对数映射函数,将图像的亮度强度映射到一个合适的视觉范围。该方法的最大优点在于它与视觉神经系统的感知能力有着天然的联系,使得该模型不仅能较好地平滑图像区域、突出图像边缘,而且能明显地改善彩色图像的视觉效果、增强图像色彩的真实效果。彩色图像的增强还离不开直方图均衡化过程。此内容将在下一小节中讲述。
彩色空间转换是指将增强后的图像进行彩色空间转换,即将增强后的数字图像从RGB彩色空间转换至HSV彩色空间,转换后的色调H、饱和度S和亮度V分别表示为
在计算H的过程中,如果出现H<0,则取≤H+360°,为H的实际取值。
RGB和HSV分别为图像彩色空间的描述方式。前者的空间向量[H S V]T不仅代表R、G、B三基色的色彩,同时也表示三基色的亮度,RGB三色之间存在很大的相关性。换句话说,通过[H S V]T三元素的不同取值,能够形成不同的颜色效果。后者是根据颜色的直观特性创建的一种包含色调H、饱和度S和亮度V的三维彩色空间模型,也称六角锥体模型。在这个彩色空间模型中,色调H用角度度量,取值范围为0°~360°。从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色:黄色为60°,青色为180°,品红为300°。饱和度S取值范围为0.0~1.0;亮度V取值范围为0.0(黑色)~1.0(白色)。如纯红色是[H S V]T=[0 1 1]T,而S=0表示非彩色,在这种情况下,色调未定义。
4.彩色图像色阶直方图均衡化
彩色图像的增强同样离不开直方图均衡化过程。
彩色图像均衡化与黑白图像均衡化的区别在于:前者是在色调不变前提下的亮度直方图均衡化,故亦称色阶直方图均衡化。
色阶直方图均衡化实际上就是对图像某个或多个颜色通道进行灰度直方图均衡化运算。常见的方法有以下几种:
(1)统计所有RGB颜色通道的直方图数据并做均衡化运算,然后根据均衡化所得的映射值分别替换R、G、B通道颜色值。
(2)分别统计R、G、B颜色通道的直方图数据并做均衡化运算,然后根据R、G、B的映射值分别替换R、G、B通道颜色值。
(3)用亮度公式或求RGB平均值的方式计算亮度通道,统计亮度通道的直方图数据并做均衡化运算,然后根据映射值分别替换R、G、B通道颜色值。
上述(1)和(2)两种均衡化方法没有本质上的差别,而且其计算方法与黑白图像灰度直方图均衡化算法相同。方法(3)也不过是在进行均衡化算法之前,先将彩色亮度通过彩色空间转换方式进行转换,以转换后的亮度进行亮度色阶(即灰度级)的统计运算,在生成亮度色阶映射值后分别替换R、G、B通道颜色值,最后形成一幅新的彩色均衡化图像,因此能够使得原始彩色图像得到明显增强。
例:利用YCbCr彩色空间中亮度分量Y与RGB彩色空间三基色分量亮度之间的转换关系
求取真彩色图像在点(x,y)的亮度Y(x,y)。式中,R(x,y)、G(x,y)、B(x,y)分别为真彩色图像在RGB彩色空间点(x,y)处的三基色分量亮度。
将彩色图像亮度函数Y(x,y)经灰度级变换函数转换成像素坐标函数g(i,j),再通过亮度公式的亮度色阶统计运算,用亮度色阶映射值分别替换R、G、B通道颜色值,最后即可获得彩色图像的增强效果。
5.彩色图像的边缘检测
通过研究已经发现,彩色图像如果采用基于灰度的边缘检测就会有10%的边缘被漏检。这是因为灰度图像边缘被定义在亮度函数的不连续处,不连续的精确定义会随着具体的边缘检测算子不同而不同。对于彩色边缘,也可根据彩色空间中的某种不连续性来定义边缘,而且有三个可选方法来定义这种不连续性:①在彩色空间上建立一种可度量的距离,利用这个距离的不连续性来检测彩色边缘的存在性;②在彩色图像的红、绿、蓝三个基色分量上独立地计算其边缘,然后将这三个基色分量的边缘用某种方法组合在一起;③允许在各分量上计算边缘时有较大的独立性,但对各分量加上某些一致性限制以便同时利用三个分量上的边缘信息。
1)基于梯度极值的彩色图像边缘检测
一般来说,对于黑白灰度图像,采用梯度算子无法给出真正理想的边缘,其主要原因如下:①梯度算子是一种多值响应算子;②梯度算子没有严格的定位功能;③梯度算子需要将局部特征值,即通过各像素点的微分强度值,来进行总体分类判决。因此,必须寻求一种修正算法,即在尽可能小的局部区域内直接进行边界像素归属的判决,其结果将不受图像各区域光线照度不均匀的影响。
对于彩色图像的边缘检测,为了叙述方便,以HSV彩色空间模型为例。在HSV彩色空间中,设计一个梯度极值算子窗口,在窗口内直接提取边缘特征像素。在一个小的直线邻域内,该像素点的彩色梯度将具有极大值。反之,如果在图像平面的某一个直线方向上,一像素在该方向上的梯度绝对值是其邻域内像素中的极大值,则该像素可能是边界像素。因此,如果能将在某一方向上具有直线邻域内像素梯度极大值的所有像素提取出来,则其集合必将包括全部边界点像素。具体步骤如下:
第一步,将RGB图像转化为HSV图像,原始图像用f(i,j)表示,则相应的HSV空间的色调、饱和度、亮度分量分别为H(i,j)、S(i,j)、V(i,j)。
第二步,设计一个5×5的边界检测算子窗口,如图4-13所示。令窗口中心点A=(i,j)为待检测像素,B=(x,y)为窗口中心点的八临近像素。定义窗口中心点A=(i,j)在θ方向上的色调、饱和度和亮度的梯度分别为
图4-13 边界检测窗口
即由窗口中心点(i,j)八邻近像素的彩色信息分量减去中心点像素彩色信息分量,其中下标θ表示窗口边缘像素检测方向,即两像素连线方向。
该像素点最终的彩色梯度定义为
第三步,为了求取边界法线方向彩色梯度的极值点,至少需要3个彩色梯度进行比较,也就是说至少需要4个像素点进行比较。如在穿过窗口中心点的一条直线上选择包括中心点在内的4个连续像素,求出中心点及其相邻3个像素的梯度,其中,中间值为窗口中心像素的彩色梯度。
如图4-14所示,其中的(a)(b)(c)(d)(e)(f)(g)(h)即环绕窗口中心、角度分别为0°、45°、90°、135°、180°、225°、270°、315°的8个边缘检测方向直线:B-A-B-B。
图4-14 8个方向彩色梯度计算窗口
假定沿上述各个方向上的分布像素点依次设置脚标,顺序排列为(x0,y0)、(i,j)、(x1,y1)、(x2,y2),则在任一方向上,中心点(i,j)及其3个临近像素点(x0,y0)、(x1,y1)、(x2,y2)的彩色梯度分别定义如下:
上述3个像素点(i,j)、(x0,y0)、(x1,y1)最终的颜色梯度为
如果窗口中心像素点(i,j)是边界像素点,当Gθ(i,j)>0时,则在某一个方向上下列两式同时成立
将上述两式合并,梯度极值边缘检测算子可以表示为
如果(i,j)>0,则f(i,j)为θ方向上可能的边界像素,这里θ方向为边缘的法线方向,用上述边缘检测窗口扫描图像所有像素,符合(i,j)>0的所有像素点为边界像素,在满足(i,j)>0的像素集合中,边界像素将包含边界点及其边缘点像素。这里应该指出的是,在进行像素彩色梯度比较时,要求各像素彩色梯度必须是同一方向的梯度,其目的在于保证边界响应的唯一性。
必须指出,图像中任何一点的彩色梯度系由两个像素点的色调、饱和度和亮度的梯度之和来决定,如果这个梯度值满足式(4-112),则该像素点为边缘点,其对图像分割结果,即边缘的定位具有直接影响,也就是说两个相邻的边缘点分割后可能大于一个单位的直线距离。为了避免上述情况的发生,须对边缘像素点给出一个确定原则:在算子窗口内设计8个检测方向,其目的在于保证如果窗口内存在边缘像素点,当(i,j)>0时,两相邻像素点中,取灰度值较小的像素点为边缘点,在式(4-112)中要求(i,j)>0,则刚好可以使边缘像素确定在窗口中心。
2)彩色图像边缘检测实用方法
首先按照式(4-91)~式(4-93)将原图从RGB空间转换为HSV空间模型,然后按照检测步骤通过对彩色图像的色调、饱和度和亮度的梯度计算来进行边缘检测。换句话说,边缘细化的目的是将有一定宽度的边缘变窄,并保持其形状的拓扑结构不变,可以大大减少边缘的数据量。边缘细化可以采用Hilditch细化算法和Sobel细化算法。
(1)Hilditch细化算法。
该算法适用于输入图像为0和1的二值图像。像素为1的区域是需要细化的部分,像素值为0的区域是背景。Hilditch细化算法的具体描述如下。
令p为被检测的像素,f(p)为像素p的灰度值,ni(i=1,2,…,8)为p的8个邻域像素,ni的位置如图4-15所示。假定集合I={1}表示需要细化的像素子集,集合N={b|b-m≤0}表示背景像素子集,集合R={-m}表示在第m次减薄时,I中被减掉的像素。
图4-15 像素邻域
图像细化的减薄条件如下:
a.f(p)∈I
b.U(p)≥1,U(p)=且
c.V(p)≥2,V(p)=(1-aj)且
d.W(p)≥1,W(p)=
e.X(p)=1,X(p)=且
f.f(ni)∉R或X[f(ni)]==1且
(2)Sobel细化算法。
Sobel细化算法适用于边缘检测后的边缘图像。具体算法如下:
第一步,对已经检测出的边缘图像采用Sobel算法再做一次边缘检测,可得到边缘两侧的边界。
第二步,将原先的边缘图像与再次经过Sobel处理后的图像相减,将会得到一幅边缘更加尖锐的增强效果边缘图像。
第三步,当采用其他方法得到的边缘非常模糊和微弱时,可重复采用Sobel算法进行2~3次的重复运算,直至边缘达到清晰而且尖锐为止。
必须指出,由于细化处理会使信号度减弱,凡是已达到细化要求的部分在后面的细化过程中应该使其保留原来结果,不需要再做处理。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。