APP下载

基于图像的目标特征提取算法

2019-06-09武书彦邹建华吴青娥许明喆

关键词:彩色图像算子边缘

武书彦,邹建华,吴青娥,许明喆

(1.西安交通大学电子与信息工程学院, 陕西西安710049;2.河南牧业经济学院电子与信息工程学院, 河南郑州450046;3.郑州轻工业大学电气信息工程学院, 河南郑州450002)

0 引言

利用彩色图像信息含量大的特点,其用途被广泛关注和使用,例如,医院外科的医生做手术时,常常借助于影像来实施手术定位,但几年前,大多都使用的是灰度图像,一些关键手术的成功率不是太高。近几年来,大多都借助于彩超、彩色影像等彩色图片或投影进行手术,成功率提高了不少,若要再进一步提高手术成功率,应该发展一种针对彩色图像的边缘、分叉点等特征进行提取的图像处理算法。这些问题都需要发展彩色图像的边缘、分叉点等特征提取方法。

在图像检索、标定、分类、聚类等中,一个重要的要求是从图像中抽取有效的特征。而颜色特征是一个最广泛使用的视觉特征。颜色直方图的使用是为表示颜色特征最普通的方法。在文献[1]中,提出了基于方形柱状图的颜色特征提取,对使用在具有不同尺寸的图像和同质木块中的四叉树分解作了规定,抽取了同样尺寸的木块的颜色直方图和表面肤性,但没有给出彩色边缘的提取算法。文献[2]给出了一个模糊人脸表情识别系统,对彩色的人脸表情进行识别,从人脸表情对情感识别,提出了一个面部特征抽取计算的方法,这个方法甚至能从部分遮挡的人脸图像中识别情感。文献[3]提出了一个蚁群最优化方法,作为一般颜色的聚类分析方法,并使用它对彩色图像中的花区域进行分类提取。同时,还提出了花图像分割方法。文献[4]根据火焰颜色和振动频率分析,提出了对火焰颜色的数字图像处理。讨论了两种有突出特点的火焰特性,即颜色信息和闪烁。那么火焰颜色的图像处理算法能否使用在外科手术、极光的彩色图像的处理中呢?是一个亟待研究的问题。

对彩色图像的处理,文献[5-8]对基于感知的图像处理实施一元化的彩色空间。文献[6]提出了一个二维的经验模式分解方法;文献[7]讨论了利用MATLAB工具对实际的图像和视频进行的处理;根据一些医学临床应用例子,文献[8]介绍了彩色图像应用的重要性。 但这些算法都是针对一维参数的灰度图像[8-10],那么,医生做外科手术及诊断[8,11]时,需要对彩色图像进行精确定位;极地部门要建立合理的数据库,需对各类大量数据进行精细分类,而数据的分类很多需要对彩色图片的有效处理[12-14]。对于彩色图像的特征提取,需要发展新的提取算法。

为尽快从彩色图像中搜索有价值的信息,本文对彩色图像的边缘、分叉点的提取,提出了三维参数的彩色图像提取算法,即色彩相似区域法,并给出这种算法与其他边缘、分叉点的提取算法在色彩分布不同情况的比较实验。

1 相关工作

在图像研究中,边缘是一个最基本特征。对边缘进行检测,能够很大程度上减少图像中的噪声和不相干信息但是又能保留基本的物体特征状况。所以对图像的边缘检测在机器学习、人工智能、图像特征提取等方面发挥着极为重要的作用,图像处理的重要部分就是边缘检测。景物图像的边缘,往往是各种各样边缘在进行模糊化后整合而成,而且在这个过程中还有很多不相干的信号干扰即噪声,给图像处理带来了一定的困难。对于这个问题又不能用频带对其进行分割与取舍,因为它们的信号频率很相近。因此,对于广大研究者来说,对图像进行边缘检测是一个难题[5-15]。就目前而言,常用的几种图像检测边缘方法中,还没有得出某种算法具有很大的优越性的。通过对目前几种边缘检测算法比较分析,根据图像与噪声的特征来选择一种合理的算法能够促进图像研究工作的进展。几种边缘检测算子[5-9]如下:

① Roberts 算子

Roberts算子是根据某点像素值的斜对角上的两个像素值的差值,然后根据这个差值的变化幅度大小和趋势来进行边缘检测,Roberts算子精度高但是不平滑。因此如果利用Roberts 算子对一些图像中的边缘进行检测时,噪声对效果还是有一定的影响。

Roberts算子其公式如下:

其中,f(x,y),f(x+1,y+1),f(x+1,y),f(x,y+1)代表相邻的坐标区域,而且输入图像的像素值都必须是整数。

Roberts算子模型为2×2,如图1所示,分别由2个完全不同的卷积核形成了Roberts算子。在计算某点输出时,只需计算Roberts算子对这2个核做卷积的一个最大值,即为输出值。

100-1

10-10

图1 Roberts算子
Fig.1 Roberts operator

② Sobel算子

Sobel算子检测边缘时,根据某个点周围的灰度加权差是否存在极值后再做边缘检测。Sobel 算子在处理图像中的噪声,能够在某种程度上起到一定的平滑作用,因此它得到的图像具有较精确的边缘特征,但缺点就是其定位精度不是很准确,具有一定的误差。

Sobel算子一阶微分算子,其公式如下:

S=(dx2+dy2)1/2。

Sobel算子模型是3×3算子模板(图2)。图2 所示的2个卷积核dx、dy形成Sobel 算子。选取2个卷积中的最大值作为该点的输出值。运算结果是1幅边缘幅度图像。

-101-202-101

121000-1-2-1

图2 Sobel 算子
Fig.2 Sobel operator

③ Prewitt算子

Prewitt算子原理与Sobel 算子类似。其是选择在大小为奇数的方形模板中来定义的一种微分计算。Prewitt 算子即使在有噪声存在的地方依然能够起到平滑的作用,但是边缘检测的精度低。

Prewitt算子其公式如下:

SP=(dx2+dy2)1/2。

Prewitt算子模型是3×3算子模板(图3)。图3 所示的2个卷积核dx、dy形成了Prewitt 算子。Prewitt 算子与Sobel 算子类似。Prewitt 算子产生1 幅边缘幅度图像。

-101-101-101

111000-1-1-1

图3 Prewitt算子
Fig.3 Prewitt operator

④ Laplacian算子

Laplacian算子是一种二阶的微分算子。Laplacian 算子在对像素大小的变化幅度上非常敏感,稍有变化就能检测出来,所以Laplacian 算子在噪声检测、精度方面具有很大的优势,但是在方向性方面存在精确度低、定位误差大的问题。

Laplacian算子由下式给出:

式中:G(x,y)表示平滑函数;x,y为整数坐标;σ为高斯分布的均方差。然后对处理后的图像进行拉普拉斯变换,得:

h(x,y)=L(fs(x,y))=L[f(x,y)×G(x,y)]=f(x,y)×L(G(x,y))。

⑤ Canny算子

Canny算子是利用一阶导数进行边缘检测,在跳跃型的边缘检测中具有非常好的呈现效果。它比上述几种算子在去噪方面具有较大的优点,而且能够产生比较均匀细小的边缘,不足之处是有时会漏掉部分的边缘特征。

Canny算子是利用了准高斯函数,即fs=f(x,y)×G(x,y)在做平滑运算的时候,以带方向的一阶微分算子来定位导数的最大值。

平滑后fs(x,y)的梯度如下:

P[i,j]≈(fs[i,j+1]-fs[i,j]+fs[i+1,j+1]-fs[i+1,j])/2,

Q[i,j]≈(fs[i,j]-fs[i+1,j]+fs[i,j+1]-fs[i+1,j+1])/2。

然后求有限差分的偏导数以及有限差分均值。对于幅值和方向角的坐标转化计算如下:

其中,M[i,j]反映的是某点边缘强度,θ[i,j]反映的是某点边缘方向,这样就能够使得M[i,j]取得最大方向角θ[i,j],能够反映出边缘方向。

2 色彩相似区域法

因为色度和饱和度合在一起称为彩色,所以本文提出的色彩相似区域法,是利用选定的色彩中心色调度、饱和程度和明亮度值与其相似的色彩像素色调度、饱和程度和明亮度值作差比较,通过给定合适的边缘阈值、分叉点阈值,进行边缘和分叉点等特征点的提取。边缘和分叉点的检测算法如下:

在考查区域中选取一个兴趣点,称为核心点或特征点O。①若存在R0>0,使以点O为圆心,R0为半径的圆O只包含一种色彩的像素,那么此点O不是边缘点,也不是分叉点,是平坦区域点。②对任意长R>0,如果以点O为圆心,R为半径的圆O都包含两种及其以上色彩的像素,那么点O是边缘点,或是分叉点。

对圆O内的各像素点与核心点O的色调度值H、饱和程度值S和明亮度值I比较,若圆O内的像素色调度、饱和程度和明亮度与核心O的像素色调度、饱和程度和明亮度差值均小于某个指定的正数,则认为该考查点与特征点O是相似的,把满足上述条件的像素组成的区域称为色彩相似区(similar color seyment, SCS)。

以SCS算法实施图像检测,由检测标注出的无法区分的边界点、分叉点为圆心O做若干个同圆心的圆,沿这些同心的圆周逆时针考察一圈,看色调变化的次数,如果变化次数超过2次的为分叉点,那么继续实施深度检测,即将O点的邻域内与O点具有相近同一种色的色调度、饱和程度和明亮度值的像素点标记为1,按照同样的方法,标记具有相近另一种颜色的像素点为2,依次类推,其他颜色的像素点为3,等等,不同的颜色分别用不同的数字标记,由同心圆周上某一点开始沿逆时针方向考察任一圆周上的像素分布情况,考查色彩的变化,即将其中像素由“0”到“1”、“1”到“2”、“2”到“3”等等的变化,都标记为1次颜色突变。颜色突变为2次的点记为边界点,颜色突变在2次以上的点标记为分叉点。那么,把颜色突变为n(n>2)次的点就记为n分叉点。

根据颜色突变次数,不能区分边界点和二分叉点,对这两种特征点的区分,还需要进一步由像素的色调度、饱和程度和明亮度值、给定的阈值,提取出边界点和二分叉点。基于在边界处的SCS区较小和二分叉点处的SCS区最小,SCS算法根据所检测区域中各个点处SCS区域面积的不同大小,来区分当前点是区域内部点、边界点或者二分叉点的,在图像每点上考察SCS区面积的大小,来作为该点处特征的度量,如果SCS区面积越小,那么该点的特征越明显。此方法可一次性快速检测出无方向性的二分叉点、相交点、边界点。

2.1 SCS单边界检测

SCS单边界检测算法是以指定大小的圆O在图像上进行按行或列逐步移动,对图像中的像素点逐个进行面积大小运算,由计算出的面积大小对边缘提取初始不同效应,再对边缘初始效应进行阈值处理以得到最终的边界。

将圆O中各点与特征点的色调度、饱和程度和明亮度值用下面的函数进行比较。

(1)

(2)

(3)

以色调度比较,SCS区的大小可由下式计算:

(4)

以饱和程度比较,SCS区的大小可由下式计算:

(5)

以明亮度比较,SCS区的大小可由下式计算:

(6)

SCS区的大小可由下式计算:

(7)

根据多次面积计算试验分析可知,在实际的噪声图像中,如果特征点在边缘附近,那么n≤0.8nmax。用下式来产生边缘初始反应:

(8)

由式(4)得到的边缘SCS区面积的初始反应值,其大小符合“SCS区面积越小,初始边缘反应值就越大”。

对边缘方向的确定,分两种边缘情况,一是SCS关于像素之间的轴对称,即SCS区像素重心位置与特征点位置有一定的距离。二是SCS区像素重心位置与特征点位置重合或接近重合。

综上所述,具体计算步骤如下:

① 对图像的每个像素上作一个圆O;

② 在圆O内,使用方程(1)~(3)计算与特征点色调度、饱和程度和明亮度值相似的像素的值,再利用方程 (4)~(7)计算这些像素的数目,这些像素的数目定义为SCS区;

③ 运用方程(8),产生边缘反应图像;

④ 得到初始边缘反应后,利用SCS区的面积中心及最长对称轴来确定特征点的边界方向;

⑤ 在与特征边缘最长对称轴垂直的方向上取初始反应极大值点的位置为边缘点,然后再选取一个特征函数ψ(t)使ψj,k(t)=2j/2ψ(2jt-k),与对这个局部边界作卷积,连接间断点、消除边界小分枝及假边缘点等处理,对图像进行平滑和细化,最终得连续的边界输出。

2.2 SCS分叉点检测算法

分叉点检测与边界检测的算法是一样的,计算公式如式(1) ~(8),而只有在公式(8)中,它与边界检测中的几何阈值n0的取值不同。提取分叉点的n0值要小些,一般n0=0.4nmax,而提取边缘的n0值要大些,一般n0=0.6nmax。n0主要影响特征点的尖锐性,n0越小,所得的分叉点越尖。

根据SCS的定义,在分叉点处n<0.5nmax,而且在分叉点处的值应为局部最小值。据此,用式(8)可以得到一个初始的分叉点反应:

(8′)

式中,nangle是检测分叉点的阈值。

最后,搜索初始分叉点响应中的局部最大值,将其对应的像素点标记为分叉点。

在分叉点检测时,由于色彩区域边界模糊,将产生虚假的分叉点。为了去除伪分叉点,可计算SCS区域的像素重心,然后计算此重心和圆O中心的距离。如果距离较小,则不是正确的分叉点。还有一个去除方法是判SCS区域的像素重心和圆O中心的连线,此连线上所经过的像素是否都是属于SCS区域的像素,如果是,则检测的分叉点有可能是正确的分叉点,否则,这检测的分叉点一定不是正确的分叉点。后一个方法强调了SCS区域的像素特征是一致的,尤其是在有噪声的情况下非常必要。

最后使用最大值的方法,即通过将一个边缘点作为圆O的中心,与它的邻域范围内的点进行比较,它的色调度、饱和程度和明亮度都最大保留,得到它是正确的分叉点。因为分叉点所在位置附近,其区域面积的反应函数一般都具有较大的值。然而,只有最大局部值的位置才是分叉点的正确位置。所以,加强局部最大化处理,使其得出最后的正确结果。

具体计算步骤①~③与边缘检测的算法步骤是一样的,另两步骤如下:

通过寻找SCS区的像素重心和圆O中心的距离或连线,对虚假分叉点进行测试;

使用最大值方法来寻找分叉点。

3 色彩分布不同情况的提取效果实验与分析

3.1 对边界的色调、亮度渐变的彩色图像的色彩提取

色彩相似区域法对色彩边界不明显的色彩提取见图4。

一幅色彩边界的色调、亮度渐变的彩色图像,如图4(a) 所示。通过色彩相似区域法提取若干色彩时,检测边缘、分叉点的相似比较函数的门限值分别设为g1=9,g2=11,g3=10;边缘初始反应函数的阈值设为n0=2 382;检测分叉点的阈值设为nangle=1 413。仿真结果如图4(b)和图4(c)所示。

(a) 原图像

(b) 色彩边缘和分叉点提取

(c) 彩色提取

由图4可以看出,色彩相似区域法把界线不分明的色彩当作平坦区域来提取,不能很好地分阶层提取。

3.2 对边界的色调、亮度较明显的彩色图像的色彩提取

色彩相似区域法对色彩边界较明显的色彩提取(单调背景)见图5。

一幅色彩边界较明显的彩色图像,如图5(a)(单调背景)所示。色彩相似区域法对这类色彩边界较明显的彩色图像的特征提取,检测边缘、分叉点的相似比较函数的门限值仍分别设为g1=9,g2=11,g3=10,边缘初始响应函数的阈值设为n0=2 382,检测分叉点的阈值设为nangle=1 413。由SCS法对彩色边缘提取的仿真结果如图5(b)所示。

(a) 原图像

(b) 由SCC法对彩色边缘提取

由图5可以看出,色彩相似区域法提取色彩的边缘、分叉点等特征比较明显,对噪声过滤效果好。

从图4~图5还可以看出,色彩相似区域法对色彩边界较明显的色彩的提取,比对色彩边界不明显的色彩的提取效果好,且抗噪声能力强。

3.3 具体色彩相似区域法算法与现有几种算法对色彩提取的比较

将色彩相似区域法与现有的有关图像边缘、分叉点提取算法对彩色图像的提取结果进行比较(图6)。仿真结果表明,色彩相似区域法提取色彩的边缘、分叉点等特征效果良好,且还可以检测边缘的方向信息,抗噪声能力也强,处理速度快,对1幅362×500的彩色图像,处理时间仅为0.157 s。同时,算法使用灵活,因为在仿真中,可以根据实际情况和试验分析,设置不同的比较函数阈值和边缘、分叉点响应阈值。

而Robert、Sobel和Prewitt算子对部分直线边缘不能检测出来,圆的边缘也有部分漏检情况;Gauss-Laplace、Canny算子虽然基本上可以检测出所有边缘,但是定位效果较差,检测出的边缘像素较宽,并且提取出的边缘和分叉点都是灰度像素。处理速度稍慢,对1幅362×500的彩色图像,Robert、Laplace和Prewitt算子处理时间平均为13.969 s,Sobel处理时间为0.75 s,Canny处理时间为21.61 s。且消噪能力也较弱。仿真结果如图6(b)~图6(g)所示。

(a) 原图像

(b) Scs算法

(c) Sobel算法

(d) Canny算法

(e) Prewitt算法

(f) Robert算法

(g) Laplaee算法

4 结论

本文研究了彩色图像的特征,提出了三维参数的彩色图像提取,给出了边缘、分叉点的提取算法,即色彩相似区域法,并给出这种算法在色彩分布不同情况的比较实验。最后,把这种算法与现有的有关图像边缘、分叉点提取算法对彩色图像的提取结果进行比较。仿真结果表明,色彩相似区域法提取色彩的边缘、分叉点等特征效果良好、抗噪能力强、处理速度快、算法使用灵活,且还可以检测边缘的方向信息。

下一步的任务是要把这种算法应用于极光图像分类、识别中。在今后的研究中,需加强色彩提取算法在工程各方面的应用,特别是在极地、医学、航天、军队、公安等领域部门中的应用研究。以及在不同的应用中,阈值的灵活选择,需在试验中进行调试、学习,怎样有效地给出合适的阈值是一个需进一步研究的问题。

猜你喜欢

彩色图像算子边缘
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
拟微分算子在Hp(ω)上的有界性
Heisenberg群上与Schrödinger算子相关的Riesz变换在Hardy空间上的有界性
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
基于FPGA的实时彩色图像边缘检测
基于专家模糊技术的彩色图像对比度增强方法
基于最大加权投影求解的彩色图像灰度化对比度保留算法
一张图看懂边缘计算
基于空间变换和直方图均衡的彩色图像增强方法
在边缘寻找自我