Canny边缘算子

2024-10-22

Canny边缘算子(共7篇)

Canny边缘算子 篇1

0 引 言

图像边缘蕴含着丰富的内在信息,边缘提取是图像识别领域中一个十分重要的课题。图像边缘主要划分为阶跃状和屋脊状两种类型。阶跃状边缘两侧的灰度值变化明显,屋脊状边缘则位于灰度增加与减少的交界处。传统的图像边缘检测方法大多是从图像的高频分量中提取边缘信息,微分运算是边缘检测与提取的主要手段。由于传统的边缘检测方法对噪声敏感,所以实际运用效果有一定的局限性。近年来,越来越多的新技术被引入到边缘检测方法中,如数学形态学、小波变换、神经网络和分形理论等。

Canny于1986年提出基于最优化算法的边缘检测算子,得到了广泛的应用,并成了与其它实验结果作比较的标准。其原因在于他最先建立了优化边缘检测算子的理论基础,提出了迄今为止定义最为严格的边缘检测的三个标准。另外其相对简单的算法使得整个过程可以在较短的时间内实现。实验结果也表明,Canny算子在处理受加性高斯白噪声污染的图像方面获得了良好的效果[1]。

传统的Canny算法利用固定的高、低阈值进行边缘提取,对不同的图像缺乏自适应性,而且无法消除局部噪声干扰,在检测出伪边缘的同时还会丢失一些灰度值变化缓慢的局部边缘。本文在对传统Canny算法进行分析的基础上,提出了一种基于改进遗传算法的Canny算法,该算法能够针对不同图像自适应地生成动态阈值,有效地解决了阈值选取问题,取得了良好的检测精度和准确度。同时改进算法的算法复杂度不大,保证了实时性。

1 Canny算法

1.1 三个准则

对一幅图像进行边缘检测,一般可分为三步:滤波、增强和检测。Canny算法也是一个具有类似步骤的多阶段的优化算法。Canny[2]给出的评价边缘检测性能的3个指标如下:

(1) 高信噪比准则 输出信号的信噪比大,则非边缘点判断为边缘点或边缘点判断为非边缘点的概率最小,即误检率最低。信噪比(SNR)的数学表达式为:

SNR=|-ωωG(-x)f(x)dx|/[σ-ωωf2(x)dx](1)

其中,f(x)是边界为[-ω,+ω]的滤波器脉冲响应;G(x)为边缘函数;σ为高斯噪声的均方根。

(2) 高定位精度准则 即检出的边缘点与实际边缘点距离最小,使定位精度最高。定位精度的数学表达式为

Localization=-ωωG(-x)f(x)dx/[σ-ωωf2(x)dx](2)

其中,G′(-x)和f′(x)分别为G(-x)和f(x)的一阶导数。Localization的值越大,定位精度越高。

(3) 单一边缘响应准则 即和每个边缘有且只有一个响应,最大限度抑制伪边缘出现。要保证单一边缘响应,检测算子脉冲响应导数的零交叉点平均距离应满足:

D(f)=π[-f2(x)dx/-f2(x)dx]1/2(3)

设高斯二维函数为:

G(x,y)=(1/2πσ2)exp[-(x2+y2)/2σ2] (4)

式(4)即为满足3个准则的最佳逼近函数。Canny以上述指标和准则为基础,利用泛函求导方法导出高斯函数的一阶导数,推导出最优边缘检测算子的一个近似实现:边界点位于图像被高斯函数平滑后的梯度幅度的极大值点。

1.2 实现过程

(1) 平滑图像

利用式(5)所示的一维高斯函数对原始图像进行平滑除噪,从而得到平滑图像I(x,y)。

G(x)=(1/2πσ2)exp(-x2/2σ2) (5)

I(x,y)=[G(x)G(y)]·f(x,y) (6)

其中*表示卷积,f(x,y)是原始图像,σ是高斯函数的散布参数,用它控制平滑程度。

(2) 计算梯度方向和幅值

采用2×2邻域一阶偏导的有限差分计算平滑后的图像I(x,y)的梯度方向和幅值:

Μ(x,y)=gx2(x,y)+gy2(x,y)(7)

O(x,y)=arctan[gx(x,y),gy(x,y)] (8)

fx=[-1/21/2-1/21/2]fy=[1/21/2]

其中,gxgy分别为原图像I(x,y)被滤波器fxfy沿行、列作用的结果。

(3) 对梯度图像进行非极大值抑制

若像素点(x,y)的梯度幅值M(x,y)不小于梯度方向上两个相邻像素点的梯度幅值,则判断该点为可能的边缘点[3]。

(4) 双阈值方法检测和连接边缘

取阈值Lth(低阈值)和Hth(高阈值),对梯度图像进行双阈值化处理,可得到一个高阈值检测结果和低阈值检测结果,再在前者中连接边缘轮廓,连接到端点时,到后者寻找弱边缘点,弥补前者的边缘间隙。

2 遗传算法

2.1 传统遗传算法

遗传算法[4,5]相对于其它的寻优算法而言其优点在于它对目标问题的求解完全依赖于解空间的个体及其适应度,而不需要其它的知识。传统的遗传算法概括起来包括以下几个步骤:

(1) 编码 在利用遗传算法进行迭代搜索之前,首先应对目标解空间进行编码,这是重要的一步,它对后面遗传算法的迭代运算的收敛产生直接的影响;

(2) 初始化种群 在解空间内随机选取N个个体形成初始群体,表示了问题的初始解;

(3)设计适应度函数 适应度函数的选取是实现遗传算法最关键的一步,是遗传算法寻求最优解的基础;

(4) 选择 根据群体中各个个体的适应度,按照一定的策略选取M个最好的个体作为繁殖下一代的群体;

(5) 交叉 对选择产生的M个个体,按照事先设定的交叉概率随机选取两个进行交叉运算,产生新一代群体的两个新个体;

(6) 变异 在交叉运算产生的新的群体中,按照一定的概率从中选取若干个体,按一定的策略进行变异操作;

(7) 检验 检验停止条件是否满足,若满足则停止,否则转到(4)继续进行进化过程。

2.2 改进的遗传算法

传统的遗传算法应用于阈值选取时,存在着收敛速度慢,以及陷入过早收敛而使寻优结果与最优解相差较大的缺陷。故对传统的遗传算法进行了改进,使得在提高收敛速度的同时给出非常接近于最优解的结果。主要思路就是分两次寻求全局最优解,即利用第一次搜寻到的解的结果确定第二次寻优的初始群的选取范围。第一次寻优的结果尽管不是最优的结果,但它肯定是比较好的结果,在此基础上进行第二次寻优,就会得到更好的结果,有利于搜寻到全局最优解。

基于实时性的考虑,我们选取的适应度函数是最大类间方差的计算函数。计算公式为:

σ(t)2=w1(t)[u1(t)-u(t)]2+w2(t)[u2(t)-u(t)]2 (9)

其中t表示用来处理图像的阈值,w1(t)表示图像中灰度值小于阈值的像素的总和,w2(t)表示图像中灰度值大于阈值的像素的总和,u1(t)表示图像中灰度值小于t的像素的平均灰度值,u2(t)表示图像中灰度值大于t的像素的平均灰度值,u(t)为目标图像的灰度均值。通过上面提到的两次寻优遗传算法,找出使得σ(t)2最大的t的值,作为Canny算法的高阈值。算法描述如下:

(1) 采用8位长自然编码方式,随机地在0~255之间以同样的概率生成十个个体A1~A10,作为第一次寻优的初始种群。

(2) 采用轮盘赌的方式选择进行交叉操作的个体,每次选取两个。具体做法是先计算群体中各个个体的适应度总和S,再随机地生成0~S之间的一个随机数Se,然后从第一个个体开始累加,直到累加值大于此随机数,此时最后一个累加的个体便是要选择的个体。选出两个个体后,根据一定的交叉概率Ph随机选取在某一位开始进行交叉运算,生成两个新个体。依此重复直到生成新一代的群体NA1α~NA10 α

(3) 根据一定的变异概率Pm,随机地从NA1α~NA10 α中选择若干个个体,再随机地在这若干个个体中选择某一位进行变异运算,形成群体NA1β~NA10β。为了防止交叉和变异操作破坏上一代群体中的适应度最高的解,我们用上一代群体A1~A10中适应度最高的个体与群体NA1β~NA10β中适应度最低的个体进行比较,若前者比后者的适应度高,则用前者替换后者,否则什么也不做。这样做的目的是防止种群的退化而导致收敛速度过慢,可以显著加快收敛速度。经过这一步,就形成了新一代的群体NA1γ~NA10 γ

(4) 判断停止条件是否满足,若不满足,则以新的群体作为A1~A10,转到(2),否则转到(5)。

(5) 选取第一次寻优最终产生的群体中和适应度最大的个体Amax作为第二次寻优初始群体的产生区间的中心,在Amax-A~Amax+A中以同等概率生成第二次寻优的初始种群B1~B10。

(6) 重复步骤(2)~(4),直到最终生成满足停止条件的最终的群体。

(7) 将第二次寻优最终生成的群体适应度最大的个体与第一次寻优的Amax进行比较,若前者大,则以前者作为最终的阈值,否则则以后者作为最终的阈值。以保证寻得的是一个较好的准最优解。

3 改进的Canny算法

3.1 平滑后对图像作灰度拉伸

平滑后灰度的变化范围变窄,一些边缘变得比较平缓,从而在后续的边缘检测中容易丢失边缘。为改变这种情况,在平滑后,对图像做灰度拉伸,增大图像的灰度分布的动态变换范围,增强对比度和边缘灰度的变换速率。

g(x,y)={00f(x,y)<a[Μg/(b-a)][f(x,y)-a]af(x,y)<bΜgbf(x,y)Μf(9)

其中,对于灰度级为256的图像来说,Mg=Mf=255。ab为常数,不同情况下灰度拉伸的ab的取值要根据具体的条件进行选择。

3.2 遗传算法求取阈值

从Canny算子的原理可以看出,影响算法性能的两个重要因素是σ和阈值Hth、Lth的选取。对于灰度平坦的图像,用较小的σ可以取得很好的平滑效果,但如果图像复杂度增加,σ也要有相应的增加。这会导致高斯平滑模板相应的增大,平滑的速度也大幅度变慢。本文实验中,σ取固定值1。

一幅在光照条件不好的情况下拍摄的图像,很可能会出现灰度分布的不均匀。这时,如果选择高阈值的Canny算子进行检测,图像的某些部分会丢失边缘;而选择低阈值Canny算子进行检测,又会出现很多虚假的边缘。可见,虽然双阈值法使Canny算子提取的边缘更具有鲁棒性,但阈值的选择对结果影响很大,而对不同的图像确定不同的阈值又较困难。

本文采用二次寻优的遗传算法迭代求取最优阈值,作为Canny算子的高阈值Hth。对于低阈值的选择,通过选择为高阈值的一定比例因子实现,一般取Lth=k·Hth,其中比例因子k取1.5~2.5。

4 仿真结果

为了验证算法的结果,采用米粒图和Lena图进行实验。实验用的计算机配置为P4 2.9G CPU,512Mb内存。其步骤是:

在用遗传算法寻取阈值时,编码方式采用8位长自然编码,对于交叉率Ph和变异率Pm,根据实验分别选取为0.85和0.02。停机条件为:如果达到设定的迭代最大次数,或是新群体的平均适应度与上一代群体的平均适应度的比值在1.0~1.005之间,则停机。而第二次寻优初始种群的生成范围为第一次寻优结果的半径为50的邻域内即A=50。

为了能客观地比较图像的边缘检测结果,采用检测图像的品质系数[6]R来评估算法的性能:

R=(1max{m,n})i=1n[1/(1+αd2(i))](10)

其中,m是真实边缘数;n是检测出的边缘数;d(i)表示第i条边缘与响应的检测边缘的距离,α为比例常数,可取为0.1,当R=1时是检测的理想状况。

图1和表1分别是米粒图的仿真实验结果和相应品质系数,可以看出,本文方法所得边缘图像的品质系数明显高于传统Canny方法。

图2是Lena图的仿真实验结果。可以看出,传统Canny方法存在一些假边缘,同时丢失了一些真边缘。而本文算法使得检测准确性得到较大的提高,伪边界显著减少,真边缘基本上全部检出,取得较好的效果。

采用的二次寻优遗传算法求取阈值,每次都能给出接近全局的准最优解,并在此基础上进行少量的局部搜索,就能得出全局最优解。本算法迭代的次数少,一般不超过7次。计算适应度不超过10(7+1)=80次,比起直接用最大类间方差计算公式所需的256次适应度的计算量大大减少,保证了算法的实时性。

5 结 论

本文对传统的Canny算法进行了改进,改善了对差分背景的图像边缘检测的效果,在进行灰度拉伸的基础上,通过二次寻优的遗传算法产生的阈值适应性好,自动化程度高。同时因为二次寻优的遗传算法迭代次数少,算法的开销不大,显著提高了阈值选取的速度。虽然算法的运算复杂度和运算时间要稍大于普通的Canny算子,但对实时性影响不大。

参考文献

[1]Zhang Bin,He Saixian.Improved Edge-detection Method Based on Canny algorithm[J].Infrared Technology,2006,28(3):165169.

[2]Canny J.A Computational Approach to Edge Detection[J].IEEE Trans on PAMI,1986,8(6):679698.

[3]Meer P,Georgescu B.Edge Detection with Embedded Confidence[J].IEEE Trans on PAMI,2001,23(120):13511365.

[4]Ren Ping.Genetic algorithm(an overview)[J].Journal of Engineering Mathematics1999,216(1):18.

[5]Chen Jianan,Guo Dawei,Xu Naiping,et al.A review on the theory for the genetic algorithm[J].Journal of Xidian University,1998,25(3):263368.

[6]William K.Pratt.数字图像处理[M].邓鲁华,张延恒,等译.北京:机械工业出版社,2005:330332.

Canny边缘算子 篇2

1 边缘检测算法简介

Roberts算子是一种利用局部差分来寻找边缘的边缘检测算子,它处理的边缘效果不是很好,不够平滑。Sobel算子是滤波算子,用于提取边缘时,可以利用快速卷积函数,方法简单,使用率较高,但是不能严格地模拟人的视觉生理特征,提取的图像轮廓并不能令人满意[1]。Prewitt算子是一种基于一阶微分算子的边缘检测,利用像素点周围邻点的灰度差,在边缘处达到极值检测边缘,除掉一些假边缘,起到了平滑噪声的功能。Laplacian算子是一个二阶微分算子,定义为梯度(∇f)的散度(∇⋅f)。LoG算子也就是高斯拉普拉斯函数,常常用于数字图像的边缘提取和二值化,它结合了Gauss平滑滤波器和Laplacian锐化滤波器,效果更好。Canny算子是一个多级边缘检测算法,边缘检测效果最好[2,3]。

2 Canny边缘检测算子

2.1 Canny算法的含义

1986年,John F.Canny找到一个可以实现多级边缘检测的算法,命名为Canny边缘检测算子,其含义如下[4]:

(1)最佳检测:能够检测到足够多的图像中实际的边缘,减少真实边缘的漏检率和误检率。

(2)最佳定位准则:检测到的边缘点的位置距离实际边缘点的位置最近。

(3)检测点与边缘点一一对应:算子检测的边缘点与实际边缘点是一一对应。为了满足这种条件,最优检测指数函数,它与高斯函数的一阶导数极为相似。

2.2 Canny算法的步骤

2.2.1 用高斯滤波器平滑图像

图像在进行边缘检测时,首先要处理原始数据,以便于更好地实现边缘检测图像分割效果。所以开始时就需要原始数据与高斯mask做卷积,处理后的图像比原来模糊了一些,有利于图像边缘检测的进行。

由于高斯函数经傅里叶变换后还是高斯函数,能构成一个在频域具有平滑性能的低通滤波器:

2.2.2 用一阶偏导的有限差分计算梯度的幅值和方向

2.2.3 非极大值抑制

为了确定边缘,不仅要得到全局的梯度,还要保留局部梯度最大的点,而抑制非极大值[4]。如何解决这个问题非常重要,这里是利用梯度的方向。如图1所示。

四个扇区的标为0~3,对应3×3邻域的4种可能组合。在每一点上,邻域的中心像素M与沿着梯度线的两个像素相比较。若M的梯度值小于或等于沿梯度线的两个相邻像素梯度值,则令M=0。即:

2.2.4 双阈值法

双阈值法[5]对非极大值抑制图像作用两个阈值τ1和τ2,并且2τ1≈τ2,可以得到两个阈值边缘图像N1[i,j]和N2[i,j]。使用高阈值能得到N2[i,j],其含有假边缘相对较少。双阈值法在N2[i,j]中把边缘连接成轮廓,当到达轮廓的端点时,该算法用领域法,把在N1[i,j]的8邻点位置边缘点连接到轮廓上,最终将N2[i,j]全部连接起来,其领域结构见表1。

3 实验过程及结果

3.1 参数选择

Canny算法包含许多可以调整的参数,它们将影响到算法的计算时间与实效。

(1)高斯滤波器的大小:首先使用平滑滤波器直接影响Canny算法的结果[6]。要检测图像中较小的、变化明显的细线时,应采用较小的滤波器,这样产生的模糊效果才少。反之,检测图像中较大的、平滑的边缘,即将较大的一块图像区域涂成一个固定点的灰度值,就需要大的滤波器。

(2)阈值:本文采用了两个阈值,比采用一个阈值更加灵活,但是,它也有缺点,阈值存在的共性问题。如果阈值设得过高,可能会漏掉重要信息;阈值过低,就会把更多细节信息括进来。因此,想要寻找可以适用于所有图像的通用阈值,暂时还是个难点,还没有一个经过验证的方法。

3.2 实验结果

Canny边缘检测算法仿真图如图2,图3所示。

经过以上两组图片对比,发现Canny算子适合于用于提取信息相对简单的图像,效果明显;但对于一些细节复杂的图像来说,分割效果不明显,会出现边缘丢失和边缘误判的情况,需要在后续的算法中不断改进。

4 结语

Canny算子边缘检测相对其他的算子得到的处理图像效果更明显,边缘更细致,其他的算子的边缘检测得到的图像边缘并不十分明显。Canny边缘检测算子根据对信噪比与定位乘积进行测度,得到最佳的逼近算子,所以得到的图像边缘会更清晰。它也有些缺点,无法有效地处理噪声的影响问题,会产生许多不存在的边缘,不便于观察。因此,在不同的情况下应选择相应的算法来达到检测目的。

摘要:图像边缘检测是一种非常经典的基于计算机视觉技术的图像处理技术,主要是根据图像的某种特定信息,把目标的边缘与周围的区分开来。回顾了几种传统的边缘检测方法,并分析它们的优缺点,详细阐述了Canny算子的检测原理和实验方法。实验结果表明Canny算子是最优的边缘检测算子,能够较稳定地对目标图像进行边缘信息提取,得到较好的检测效果。

关键词:图像处理,边缘检测,Canny算子,参数选择

参考文献

[1]段瑞玲,李庆祥,李玉和.图像边缘检测方法研究综述[J].光学技术,2005(3):415-419.

[2]徐献灵,林奕水.图像边缘检测算法比较与分析[J].自动化与信息工程,2007(3):44-46.

[3]王静,李竹林,贺东霞,等.基于边缘检测的各种算子及其特点[J].延安大学学报:自然科学版,2014(1):5-8.

[4]王佐成,刘晓冬,薛丽霞.Canny算子边缘检测的一种改进方法[J].计算机工程与应用,2010(34):202-204.

[5]曾发明,杨波,吴德文,等.基于Canny边缘检测算子的矿区道路提取[J].国土资源遥感,2013(4):72-78.

Canny边缘算子 篇3

身份鉴别是一个永恒的课题。与传统的身份鉴别方法相比, 一种基于人自身所具有的生物特征识别技术, 以其方便性和可靠性而受到广泛的研究。虹膜一词最先源于古罗马时代, 出现虹膜进行身份辨别的假设最早出现于十九世纪八十年代左右, 其原理是通过虹膜的几何纹理的不同来辨别身份。据此, 最早提出“自动虹膜识别”的概念是美国的Leonard Flom和Aran Safir, 但尚未有系统能实际运用。1993年John Daugman完成了高性能自动虹膜识别的系统, 而今多数的自动虹膜识别系统都是以Daugma为中心算法演变的。Daugman的算法中, 首先用Gabor滤波器对虹膜纹理进行一种相对简单的粗量化和编码, 识别的准确率很高。虹膜的纹理在其他方向尤其是是径向, 有着大量的纹理信息。

虹膜的定位与提取是整个虹膜识别中重要的前期工作, 目前已有的方法包括灰度分割、Robert算子、拉普拉斯算子以及传统Canny算子。这些方法被分别应用于虹膜的内外边缘检测, 其中灰度分割用于虹膜内边缘定位, 由于虹膜与瞳孔边界的灰度变化较明显, 利用这一特征, 可以很好地把瞳孔与虹膜分离。其余的算子常用于虹膜外边缘检测, 但是出于准确度、速度、噪声排除、虚假边缘和双像素边界等干扰因素考虑, Canny算子可谓其中较为优秀的边缘检测方法。

Canny算子是一个性能优良的算法, 它以其受噪声和弱边缘干扰很小的特点, 在图像处理领域里应用十分广泛。其基本原理是:对待测目标图像通过Gauss滤波器进行平滑滤波, 然后计算局部梯度极大值来提取图像的边缘, 其中用高斯滤波器的导数计算梯度最大值。当采用两个阈值时, 能同时检测出强边缘与相邻的弱边缘。受噪声和弱边缘的干扰影响是非常小的, 相对于其他基本方法更能够检测到真正的虹膜弱边缘。

本文提出了一种可以自适应的动态阈值法, 这个方法可以根据当时的环境以及摄像头的配置自适应地选择每个子图像的高、低两个阈值。

1 Canny算子

Canny算子在众多基础边缘检测算子中性能较为优良, 实用性广。主要是先用Causs滤波器对目标图像进行平滑滤, 然后计算感兴趣部分的图像梯度极大值来确定阈值, 然后提取图像边缘。采用两个阈值来检测图像强边缘和弱边缘。受噪声和弱边缘干扰影响很小, 相对上述其他基本方法更够准确检测到弱边缘。

边缘检测方法也有线性方法和非线性方法。以线性算子为基础的有梯度算子和拉普拉斯算子, 作用类似于高斯滤波, 一般只起到锐化图像边缘的作用, 检测的效果不理想[2]。非线性算子有Sobel算子、Robert算子等等, 因方向是各向异性, 导致对部分图像的边缘检测不完整。Canny属于一阶算子, 利用高斯函数的梯度来近似。图3.7为几种常见微分算子对虹膜图像进行边缘检测的结果。

Canny算子在虹膜图像边缘检测方面有较好的效果, 但是也存在一些不足。近年来, 不少个人和研究机构提出了很多种基于Canny算子的改善算法[3,4,5,6]。从试验应用中可以发现, 因各种干扰因素, 图像中会存在噪声、模糊的边缘或整幅像片范围内对比度不相同等干扰因素或问题。Canny算子在处理这些干扰较大的图片时初期设定的阈值参数有效性大大降低, 另一方面无法消除局部噪声干扰, 在检测出假边缘的同时还会丢失一些灰度值变化缓慢的局部边缘。

2 改进型Canny算子 (开关型中值滤波器自适应的动态阈值方法)

由于实际的目标图像存在光强度以及相机本身未知等问题, 传统Canny算子很难设定实际中的两个高、低阈值, 针对这个问题本文提出了一种基于自适应动态阈值方法, 依据非极大值抑制之后的输出结果, 自适应地选择每个子图像的高、低两个阈值。

2.1 梯度直方图

把图像中感兴趣的部分分割为大小一致的子区域, 子区域之间同时也存在少部分相互重叠, 设比例参数θ为重叠的区域与子图像区域的比值, 然后进行非极大值抑制, 依据输出的结果动态地确定每一个子区域的高低阈值。

参考相关文献和多次实验, 设梯度的最值不大于4×E (E为灰度图像灰度级) , 按照上述思想, 先对统计图像进行非极大值抑制处理。然后统计图像中边缘像素位不为0的梯度幅值数量。依据统计出来的结果可得梯度直方图。

2.2 子图像梯度直方图的分类

在梯度直方图的特性上, 尝试一种用自动识别并分割非边缘区域和边缘区域的方法。先依据梯度直方图中的形态特征对梯度直方图进行分类, 子图像梯度直方图可大致分为三类1) 全部是背景:如果子图像和原图像中的非边缘区域完全对应, 而没有含任何边缘, 则把子图像区域的边缘数目设置为0, 这样动态阈值产生的局部噪声便会受到抑制;2) 全部是边缘:不可能存在这一情况;3) 背景和边缘并存:大部分图像属于这一情况, 包含了大量背景与少量边缘。

从上述可知, 图像中非边缘所占比绝大多数。我们把直方图的峰顶所对应像素的集合称为非边缘像素集合。Hmax为最值梯度 (梯度直方图中占有最多像素数值的梯度值) , Pmax为像素最值梯度方差。Hmax反映是非边缘区域分布的中心位置, 而Pmax则反映梯度分布相对于Hmax的离散程度。

式中, k为像素数不为0时的梯度的最大值, N为像素总数。

当梯度直方图只存在一个峰值, Hmax附近的像素梯度值的密度最高, Pmax是非常小的。非边缘像素梯度存在一个峰值和存在边缘像素梯度的分布时, 边缘像素梯度一般分布在距离Hmax比较远的位置, 所以造成Pmax的值很大, 根据这个现象设定门限进行判断。在梯度方差小于门限时, 自动判定子图像全部为背景, 并把对应梯度幅值[i, j]设置为零, 降低了计算复杂度, 节省了运算时间;当最值梯度方差值比门限大时, 自动判定子图像包含背景和边缘, 需要再进一步处理计算。

2.3 自动选取阈值

本文尝试使用自适应地来设置一个高阈值Γh的门限, 像素最值梯度Hmax反映了梯度直方图中非边缘区域的中心位置, 而像素最值梯度方差Pmax则反映出梯度直方图中的梯度分布相对于Hmax的离散程度 (相对于非边缘区域的离散程度) , 因此通过Hmax和Pmax计算得出非边缘区域的范围, 当高阈值Γh大于Hmax一倍Pmax时, 可认为Γh在非边缘区域之外, 可以有效地防止轮廓图中出现假边缘, 其中计算Γh的公式为

自适应动态阈值是相对固定阈值而言的, 以全局最优为前提, 根据不同的子图像梯度直方图的特征, 确定出每个子图像不同的阈值。再以全局阈值作为基础, 利用子图像梯度分布的特征, 对其进行不同程度的调整, 最后得到的阈值为动态自适应阈值。对任意图像, 设ΓH和ΓL分别为上述描述方法确定的整幅图像的全局高阈值和低阈值, 而Γh和Γl为子图像区域上述方法确定的局部高阈值和低阈值, 最后分割得出子图像的高、低阈值分别为

上式中, 0<β<1为阈值调整率。

假若β=0, 表示不需要调整, 依据全局梯度直方图所显示的特征来分割图像;若β=1, 表示完全依照子图像局部特征进行分割, 体现了动态阈值算法能够不丢失局部细节和兼顾整体最优。在实际应用中, β的取值也是根据需要来确定的, 而子图像的大小可适当地选择。高阈值参数表示梯度幅值小于ΓHigh的像素所占有的比例, 由ΓHigh还可以进一步计算出αh。

3 对虹膜图像进行边缘检测的结果

试验用计算机配置为Intrl (R) Core (TM) i3-21303.4GHz CPU, 256MB显存, 3.74MB内存, 用Matlab编程实现。设图像为M行N列L级灰度, 以传统Canny算法、其他改进算法和改进型的Canny算法作为比较, 处理结果如图1, 算法耗时的比较如表1所示。图1为传统Canny算子、其他改进算法和改进型Canny算子分别对虹膜图像进行边缘检测的结果。

分析得出对虹膜图像的边缘检测的结果表明改进型Canny算子包在原有数据的基础上, 能检测出更多的边缘, 对边缘的检测能力比传统Canny算子好, 而且其纹理检测能力也比传统的Canny算子和基于Otsu算法的Canny算子更胜一筹, 这有利于特征的提取, 能提高其匹配的准确度。另外其耗时也小于传统Canny算子和基于Otsu算法的自适应阈值选取Canny算子, 对于一些需要快速检测的虹膜系统, 可应用此改进型的Canny算子。

4 结论

本文以传统的Canny算法为基础, 提出了一种基于Canny理论的自适应边缘检测方式。通过对比实验得到以下结论:自适应边缘检测得出的图像边缘信息比传统算法得出的图像边缘细节要完整, 噪声干扰不明显, 算法本身的复杂程度也较小;结果得到的虹膜图像的边缘信噪比高, 连通性明显较好, 并且能够自适应地生成高阈值和低阈值检测图像边缘, 智能化程度较高。对虹膜图像边缘检测实现快速、全面和真实是研究工作的最终目标, 但由于时间及基础知识的局限性, 上述算法的研究还有较大的完善空间。

摘要:基于使用传统Canny算子检测虹膜图像后, 部分图像抛物线和圆的检测出现细节不完整等问题, 提出一种基于自适应动态阈值的算子。将整幅图像分割为若干个子区域, 令子图像之间有一定区域的重叠, 然后依据非极大值抑制之后的输出结果自适应地选取每个子图像的高、低两个阈值。为了验证改进算法的有效性, 因而对CASIAI虹膜数据库进行实验并对结果进行分析, 得出改进Canny算法相比传统Canny算子不仅计算复杂度有所降低, 而且能够更好地检测边缘信息。

关键词:边缘检测,Canny算子,自适应动态阈值

参考文献

[1]张树忠.基于Canny理论的彩色图像边缘检测[D].成都, 成都理工大学, 2006.

[2]张玲艳.基于Canny理论的自适应边缘检测方法研究[D].兰州:西北大学.

[3]Demigny D, Lorca F G, Kessal L.Evaluation of edge detectorsperformanceswith a discrete expression of Canny’s criteria[A].In:Proceedings of International Conference on Image Processing[C], Los Alamito s, CA, U SA:IEEE, Computer SOC P ress, 1995:169~172.

[4]Demigny D, Kam le T.Adiscrete expression of Canny’s criteria for step edge detector performances evaluation[J].IEEE Transactions on Pattern Analysis and Machine Intelligence, 1997, 19 (6) :1199~1211

[5]Demigny D.Extension of Canny’s discrete criteria to second derivative filters, towards a unified app roach[A].In:Proceedings of International Conference on Image Processing[C].Los Alamitos, CA, U SA:IEEE, Computer SOC Press, 1998:520~524

[6]Worthington P L.Enhanced Canny edge detection using curvature consistency[A].In:Proceedings International Conference on Pattern Recognition[C].LosAlamito s, CA, U SA:IEEE, Computer SOC Press, 2002:596-599.

[7]王春, 叶虎年, 虹膜识别算法的研究[J].贵州工业大学学报:自然科学版, 2000, 6, 29 (3) :48-52.

一种改进Canny算子 篇4

1 Canny算子

Canny把边缘检测问题转换为检测单元函数极大值的问题。其输入是一幅灰度图像,输出图像上记录了输入图像上灰度变化不连续点的位置信息。Canny算法按以下三个步骤对输入图像进行处理:

(1)高斯平滑

高斯函数的一阶微分是对理想滤波器的很好近似。高斯函数由下式给出:

其一阶导数如下:

式(3)给出了二维高斯函数:

这里需要注意输入参数σ是高斯函数的标准差,其决定“平滑度”。

(2)求导

分别在横轴和纵轴方向上对图像求一阶偏导。得到每一点在图像上的梯度值:

象素(x,y)的梯度值代表图像在该点的灰度变化率,而边缘通常是灰度变化率较大的点集。若用各点的梯度值做成一幅平面地势图,则在边缘上会形成一个“山脊”。

最后在“山脊”上遍历,把所有处于“山脊”上最高处的点提取出来得到的就是图像的边缘线。称这一过程是:non_maxmal suppression。为在“山脊”上提取边缘,Canny算子设置了两个阈值:T1,T2,且T1>T2。遍历从“山脊”上某个梯度值大于T1的点P0开始,然后从P0点向四周逐点扩展,一旦某邻接扩展点的梯度值小于T2,则停止扩展。当再没有可扩展的点时,一条边缘线就提取完毕了。Canny算法在这一步骤设置两个阈值,使得提取到的边缘比较完整,如果只用一个阈值提取,则原本是一条完整的边缘极易被噪音点打断而产生一些不连续的线段。

2 动态阈值Canny算法

Canny算法在对具有模糊边缘的图像进行边缘检测时,整幅图像仅仅采用了两个阈值,往往不能兼顾图像各处的具体情况,所以效果是不理想的。因为用固定阈值进行边缘检测很可能导致边缘在模糊处丢失。为了让canny算法能够更精确的检测图像中目标的边界,在对图像进行预处理时,先将其分割成若干子图像;然后针对每幅子图像中的具体情况,选用不同的阈值,最后采用上一步中所选择的阈值对整幅图像进行动态分割。动态阈值算法步骤如下:

(1)对图像进行预处理

对所获得的非标准图像,首先采用线性锐化滤波锐化整幅图像的边缘,然后将图像分割成若干子图像以便于后续处理。分割后的子图像之间要有部分重叠,以便消除在处理后的图像中所存在的边界效应。

(2)顺序选取其中的一个子图像并用高斯平滑滤波器进行平滑。设用I[i,j]表示图像,则该操作可表示为一个卷积过程:

其中:G[I,j,σ]为高斯平滑滤波函数;σ是高斯函数的散布参数,用它控制平滑程度。

(3)子图像增强

使用一阶偏导的有限差分来计算梯度的幅值和方向;幅值与方向角可用直角坐标到极坐标的转换公式来计算[6]:

其中:P[i,j]=(S[i,j+1]-S[i,j]+S[i+1,j+1]-S[i+1,j])/2,

(4)在子图像中选取阈值

动态阈值算法仍然使用双阈值来检测子图像的边缘。但由于目标与背景的灰度值有部分交错,通常希望分割后误差最小,因而该算法采用最优阈值法求出其中的一个阈值:

其中:μ1和μ2分别是背景与目标区域的平均灰度值,σ1和σ2分别是关于均值的均方差,P1和P2分别为背景和目标区域灰度值的先验概率。

(5)检测是否还有子图像未处理,若有则转(2);否则转(6)。

(6)用第4步中选取的多个阈值对整幅图像进行动态分割。

假设在一幅子图像中选用了两个阈值,分别为τ1和τ2,且2τ1≈τ2,从而可以得到子图像的两个阈值边缘图像T1[i,j]和T2[i,j]。其中,由于T2[i,j]使用高阈值得到,因而含有很少的假边缘,但有间断。

(7)采用非极大值抑制来细化边缘

由于在处理时,会使图像的边界产生屋脊带,所以为了细化边缘,算法需要沿着屋脊带的顶部进行跟踪,将那些不是最大值的点值为零。这一过程称为非极大值抑制。

(8)边缘连接

要在T2[i,j]中把边缘连接成轮廓,当到达轮廓的端点时,该算法就在T1[i,j]的8邻点位置中寻找可以连接到轮廓上的边缘,这样,算法不断的在中收集边缘,直到将T2[i,j]连接起来为止。

(9)算法结束。

3 实验结果

图1给出了Canny算子和改进后的Canny算子处理得到的边缘检测效果对比图。

4 结束语

所提出的检测方案,是在原有基础上对Canny算子进行改进。有效地避免了因为用固定阈值进行边缘检测导致边缘在模糊处丢失等问题。

摘要:提出一种改进的Canny算子,其应用动态阈值作为边缘检测的准则,有效地避免了因为用固定阈值进行边缘检测,很可能导致边缘在模糊处丢失等问题。实验中对比Sobel算子和Canny算子,表明改进的Canny算子对于模糊边缘检测效果较好,是一种具有实用价值的边缘检测算法。

关键词:边缘检测,Canny算子

参考文献

[1]J.Canny.A computational approach to edge detection[J].IEEE Trans.on Pattern Anal.Machine.Intell.1986(8):679-698.

[2]V.Torre.T.Poggio.On edge detection[J].IEEE Trans.on Pattern Anal.Machine Intell.1986(8):147-163.

[3]Viceconti M.Cappello A.Massari B.Bertozzi A.Zannoni C.O-ptimal slice positioning for long bone CT reconstruction[J].En-gineering in Medicine and Biology Society.Bridging Disciplines for Biomedicine.Proceedings of the18th Annual International C-onference of the IEEE.1996(2):674-675.

[4]章锍晋.图像分割[M].北京,科学出版社,2001:17-19,9-10.

[5]D.Marr.视觉计算理论[M].姚国正,刘磊,汪云九,译.北京:科学出版社,1988:11-20.

Canny边缘算子 篇5

测量技术是所有工业技术发展的基础和先决条件, 现代化的工业生产对微小尺寸的测量具有越来越高的要求。从尖端科学的热核反应到日常生活中的化学纤维, 都有微小尺寸测量的问题。面对这类的问题, 传统的接触式测量方法已经满足不了工程上的需要了。如今, 基于光电技术发展起来的光电测量, 已逐渐成为人们进行精密测量时的首选。近些年来国内外涌现出了许多新的光电测量方法, 如解调测量法、光学投影法、原子力显微镜 (AFM) 测量法等。然而这些检测方法普遍存在成本高, 测量效率低, 稳定性不足等缺点。本文提出一种基于图像处理的非接触测量技术, 采用一种简便快捷的数字图像处理算法, 对工件尺寸进行测量, 实现了测量的自动化, 大大降低了测量系统的成本, 提高了测量的效率和准确性。

1 测量系统的组成

本测量系统由照明光源、光学系统、CCD成像系统、计算机图像处理系统组成。照明光源发出的光经过准直光路形成平行光后投射到被测工件上。工件经光学系统放大后由CCD相机接收成像, 图像采集卡将图像的信息转变成数字信号后传送给计算机。计算机对这些数字信号进行运算处理来提取目标图像的轮廓特征, 然后根据处理结果计算得到被测工件的几何参数。实验使用Visual++6.0软件平台来进行数字图像的处理。

2 测量算法的设计

在工件几何参数的测量中, 边缘检测是最关键的图像处理技术, 其质量直接关系到测量结果的精确程度。

2.1 图像的滤波处理

由于梯度计算容易受到噪声影响, 因此边缘检测的第一步是用滤波尽量去除噪声。本文采用中值滤波来消除可能出现的随机噪声。

需要注意的是, 降低噪声的平滑能力越强, 边界强度的损失也就越大。

2.2 轮廓的提取

经过滤波处理后的图片就可以通过边缘检测来提取轮廓信息了。

常用的边缘检测的算法很多, 如基于一阶导数的Roberts算子、Sobel算子、Prewitt算子, 基于二阶导数的高斯-拉普拉斯算子等。Canny算子是比一种较新的能在抗噪声干扰和精确定位之间寻求最佳折中的方案。

Canny边缘检测的基本思想就是首先对图像选择一定的Gauss滤波器进行平滑滤波, 然后采用非极值抑制技术进行处理得到最后的边缘图像

在Visual C++6.0平台上用C++语言实现Canny算子的轮廓提取过程, 得到图1所示的处理结果:

可见芯片的边缘清晰, 完整, 完全可以满足后续测量的要求。

2.3几何参数的换算

本文将采取一种简便快捷的算法来进行边长的测量, 尽可能的提高测量效率。

经过Canny算子进行边缘提取后的图像已经是二值化图像了, 像素只有0和1两种取值, 一般用0来表示黑色, 1来表示白色。该算法对图片进行逐行扫描, 直到第一个像素为1的点A并把它的坐标 (m, n) 保存, 然后继续扫描, 找到该行最后一个像素为1的点B并将它的坐标 (k, n) 保存。最后将两个像素点的横坐标相减再乘以像素横向的宽度w, 就计算出了被测芯片的边长L。

3 实验结果与分析

实验采用DH-SV1310FC高分辨率数字CCD工业摄像机, 像素尺寸为6.45μm×6.45μm。以边长为14.040mm的标准量块为测量对象, 进行6次重复测量, 测量结果如表1所示。

由表1可以看出, 测量精度在0.003mm以内。

4 结论

本文对图像处理在尺寸测量中的应用进行了研究。实现了一种用Canny算子来对图像进行轮廓提取, 直接根据轮廓信息来对被测物进行尺寸的测量方法并进行了实验测量。实验结果表明该方法的测量精度在0.003mm以内。

摘要:本文提出了一种基于Canny算子的尺寸测量方法, 利用计算机视觉代替人眼对被测工件参数进行非接触测量, 在VisualC++6.0平台上开发了一种测量软件系统, 实现了测量自动化。通过多次实验进行验证, 结果表明, 这种方法克服了传统人工测量所造成的各种误差, 测量精度达到了0.003mm, 大大提高了测量的准确性和效率。

关键词:图像处理,Canny算子,二值化,亚像素

参考文献

[1]伍尤富.图像处理中边缘检测研究方法[J].舰船电子工程, 2006 (4) :35-38.

[2]王宝光, 吴进保.线阵CCD器件在刀具测量定位中的应用[J].天津大学学报, 1992 (3) :132-136.

[3]冈萨雷斯R.C.李叔梁等译, 数字图像处理[M].北京:北京科学出版社, 1998

Canny边缘算子 篇6

医学图像分割是医学图像分析领域的一个挑战性的研究课题。而人体肝脏图像的分割又是医学图像分割中的难点,分割结果的好坏直接影响医生对病人的诊断结果。本文重点研究和实现对CT肝脏图像中肝脏区组织结构的分割。基本研究技术路线是:先利用Canny算子边缘检测法实现了对肝脏CT图像的边缘检测,然后为了克服Canny算法对图像的平滑受高斯滤波参数σ的影响,且检测不能达到单像素级和易出现伪边缘等缺点,在以上工作的基础上,实现了一种基于Canny边缘检测Level Set图像分割方法,这种方法的基本思想是通过低维到高维的映射,实现对不均匀的受噪声影响的肝脏CT图像的分割。该方法具有适应性强和精确度高的特点,能准确地提取到目标的边缘,实验也取得比较好的分割结果。

1 水平集的基本理论

水平集(level set)方法是由Osher和Sethian提出的,可应用于对轮廓面或轮廓线的运动跟踪,如曲线演化。曲线演化是利用描述曲线几何特征的两个重要参数———单位法矢和曲率,来研究曲线随时间的变形。单位法矢描述曲线的方向,曲率则表述曲线弯曲的程度。其演化过程可以用如下的偏微分方程表示[1]:

式(1)中,X(s,t)为演化曲线,t是时间,演化其实就是曲线在各个时间上的不同状态。N为单位法矢,V(X)是决定曲线X上每点演化速度的速度函数。图1为曲线演化示意图。

由图1可以看出,任意形状的简单闭合曲线(没有交叉点的曲线),在上述偏微分方程的驱动下,将会逐渐变平滑,并收缩成一个圆点。

通过前面的介绍,已经知道曲线演化主要涉及到两个几何参数,一个是曲线的曲率,一个是曲线的方向矢量,而这两个参数的计算并不是一件容易的事情,水平集方法正好满足这些要求,能够更有效更方便处理曲线的几何参数。

前面提到水平集方法可以对活动轮廓进行跟踪,但是它不直接对轮廓进行操作,跟踪过程还可以用数学方法来表示。其基本思想是:将轮廓看成高一维函数Ψ(x,t)(称为水平集函数)的零水平集,然后写出水平集函数所满足的偏微分方程,求解此方程,推进水平集函数,计算到要求时刻水平集函数的零水平集,得到界面的形状,界面的法向方向,曲率等由水平集函数的偏导数容易算出。那么在任何时候,通过从输出中提取零水平集Γ((X,t)){Ψ(x,t)=0}来得到演化轮廓[2]。

水平集方法主要应用于图像的分割中:首先利用一个闭合曲线圈定图像平面上的检测目标,然后利用图像基本的特征,比如平均灰度、梯度以及边缘信息等来控制曲线演化,使该闭合曲线最终停止目标的轮廓边缘,从而实现对图像的分割[1]。

具体的做法如下:给定待分割图像上的一条闭合曲线,把整个图像划分为两个区域:

(1)曲线的外部和内部区域,如图2所示。

(2)在平面上定义距离函数D(x,y,t)=±d,其中d是平面上的点(x,y)到曲线的最短距离,函数符号取决于该点在曲线内部还是外部,一般定义曲线内部点的距离为负值,t表示时间。

在上面的步骤中要注意的是:曲线是t=0时的曲线,即初始曲线,生成的符号距离函数作为水平集函数的零水平集;点(x,y)是应该是曲线上的点,这里的目标曲线是初始曲线。d是点x到初始曲线的距离。

2 Canny边缘Level Set分割

在利用水平集方法对医学图像进行分割时,很显然,前提是要能获得一个可以圈定分割目标的闭合曲线,即目标边界。在对图像进行基于边界的分割处理时,所要进行的第一步便是对图像进行边缘检测,边缘检测是基于像素灰度的不连续性,那么可以采用对像素求一阶或二阶导数,得到过零点和极值点,来确定目标的边界。在数学中,求导可以近似地表示微分,因此,常用微分算子来进行边缘检测。

但是,医学图像都会受到噪声的干扰,求一阶或二阶导数会扩大噪声,而影响分割的精度及最终的结果。相比传统的微分算子,Canny算子是性能比较优良的边缘检测算子,它是高斯函数的一阶导数[3]。对噪声有很好的抑制力,较好地平衡了信噪比和检测精度这两个分割标准之间的矛盾。

在本次研究中,首先利用Canny边缘检测算法来获取CT图像中肝脏的边界。但是平滑是对整个图像进行的,对边缘也进行了平滑,最终使得分割达不到单像素级,得不到精确定位的边缘。水平集方法可以跟踪活动轮廓,能最终停留在目标的边缘,但是其演化仅依靠图像局部梯度信息,而未考虑空间信息,所以对噪声很敏感,就可能会发生内部空洞和边界泄露现象。针对上述算法特点及问题,可以对Canny边缘检测算法和水平集分割算法相结合,取长补短,来对图像进行分割,得到一个较精确的目标。

具体做法为:

(1)在Canny边缘Level Set分割算法中首先要设计一个滤波器[1]。该滤波器就是使用公式(1)[4]来计算偏微分方程的更新解。

式中,A是水平对流系数,P是传播系数,Z是均值曲率的一个空间调节系数,常数α,β和γ是每个系数在界面运动上相关项的权重。

(2)在算法中定义一个速度系数,用来最小化一幅图像中Canny边缘的距离D。

(3)对步骤(2)所得到的距离进行平方最小化,来构造水平对流系数,如式(2)所示[5]。

(4)在水平对流领域内演化初始水平集,直到它停止在Canny算法检测的图像边缘。

通过前面分析了解到采用Canny边缘检测Level Set算法分割时,需要输入两个图像:一个是初始模板图像,即初始水平集;第二个是待分割的原始图像,从这个图像可以计算出传播系数和曲率系数。具体操作时,需要由用户先定义出待分割对象的初始轮廓,再利用水平集的进化功能,使水平集一直进化到符合待分割对象的解剖结构为止[6]。

初始模板通常由用户给出,在本文中,选用来源于华中科技大学同济医学院附属同济医院的肝脏CT图像序列中的第206号切片来得到初始模板。实现步骤为:

(1)对n=206号图像进行滤波去噪,采用各向异性扩算滤波法,保留边缘信息。

(2)获取初始水平集。采用独立连接阈值法[7]对由步骤(1)得到的滤波后的图像进行分割,由此确定滤波后的图像中肝脏组织的最低阈值Lower Threshold=185和最高阈值Upper Threshold=253。

(3)在由步骤(1)得到的滤波后图像的肝脏区域设置一个种子点。然后采用连接门限阈值法[8],结合步骤(2)得到的阈值区间和种子点,对步骤(1)得到的图像进行分割。得到初始模板图像。

综上所述,Canny边缘Level Set算法的实现流程如图3所示[5]。

3 实验结果与讨论

本文采用上述Canny边缘Level Set分割算法对图4(a)进行分割,分割所采用的参数及结果如表1、图4所示。

通过分割结果可知,虽然得到的初始水平集不是很好,存在空洞,边缘不平滑,有尖角存在,但是采用Canny边缘水平集方法分割得到的最后结果却可以非常精确地提取到平滑的、不受噪声影响的肝脏轮廓。对比Canny边缘检测算法和基于Canny边缘水平集算法,发现Canny边缘检测水平集算法有以下的优点:

(1)能得到最后的用户期望的待分割的区域。而且得到的轮廓线更加准确,没有伪边缘。

(2)受局部噪声的影响较小,局部的噪声点只会对轮廓的扩展过程造成一些影响但不会影响到最终轮廓的形状,能更好地平滑图像而且分割后的图像非常清晰。

(3)该方法能够很好地处理各种拓扑结构复杂的组织器官的分割,可以处理轮廓尖角、轮廓的拼接、融合、分裂等各种情况,非常适合用于医学图像的分割。

当然,该算法也有需要改进的地方,例如,由于迭代次数很大,计算量比较大,使得程序运行时间很长,对硬件的要求要高于Canny算法和区域生长算法。

4 结束语

本文主要研究基于边界的分割算法对人体肝脏CT图像的分割。首先采用了经典的Canny算法,Canny算法是具有高斯平滑功能的边缘检测算法具有信噪比大和检测精度高的优点,但是同时也存在对噪声敏感的缺点,且得不到最终要分割的肝脏轮廓。只能适合作为分割的预处理或者中间环节和其它的分割方法一起使用。水平集方法是基于模型的方法,不需要直接对轮廓进行操作,其基本的思想是低维到高维的映射。这种方法受局部噪声的影响较小,能更好地平滑图像。在综合两种方法的优缺点的基础上,将Canny算法与水平集方法相结合,来得到轮廓清晰、受噪声影响小的分割结果。实验结果证明基于Canny边缘水平集分割算法对肝脏区域的分割效果很好,得到了轮廓线准确,信噪比高、信息丰富且不需要人为设置种子点或者阈值区间从而对结果产生影响的目标区域,还能够较好地处理医学图像中常见的解剖结构和拓扑变化。但是该方法也有其显著的缺点:一是在高一维空间上进行曲面演化,因此数据计算量很大,计算复杂性较高且计算时间较长;二是当两个物体存在嵌入时,不能分割出所有物体。因此,还需要更深入的学习和研究来克服这些困难。

总而言之,不存在一个分割算法对所有类型的医学图像都一样能奏效,最有效的方法就是把很多不同的方法组合起来使用,扬长避短,来求得较理想的分割结果。

摘要:文中主要实现了一种基于Canny边缘检测水平集图像分割方法,这种方法的基本思想是通过低维到高维的映射,实现对不均匀的受噪声影响的肝脏CT图像的分割。该方法具有适应性强和精确度高的特点,能准确地提取到目标的边缘,实验也取得了比较好的分割结果。

关键词:Canny边缘检测,水平集,肝脏CT图像分割

参考文献

[1]李俊.基于曲线演化的图像分割方法及应用研究[D].上海:上海交通大学图书馆,2001.

[2]Ibanze L,Schrader W,Ng L,et al.The ITK Software Guide[M].The Insight Software Consortium.USA:[s.n],2005.

[3]章毓晋.图象分割[M].北京:科学出版社,2001.

[4]Sethian J A.Level Set Methods and Fast Marching Methods[M].Cambridge University Press,1996.

[5]王安明.基于ITK的医学图像分割[D].南昌:南昌大学图书馆,2007.

[6]高琳,罗晓辉,何立新.水平集方法在CT肝脏图像分割中的应用[J].计算机工程与应用,2005(36):201-203.

[7]彭微.基于区域的肝脏病灶CT图像分割及实现[J].信息技术,2011(11):132-133.

Canny边缘算子 篇7

现代计算机网络的发展已经深入到社会经济的各个角落,对社会经济活动的影响是广泛而深入的,人体行为识别是人体运动分析的一种高级形式,对人机交互、安全监控和医疗诊断等领域意义重大。由于人体行为本身是一个复杂的过程,这一复杂程度甚至可以以人体行为艺术来表述,所以如何设计识别模型实现人体行为识别系统的准确行为信息采集和行为信息识别功能,成为人体行为分析系统研究面对的主要问题,因此对基于改进canny算子和神经网络的人体行为识别模型的研究具有鲜明的现实意义。

1 改进的 Canny 算子

1.1 高斯滤波改进

高斯滤波是改进型Canny算子的主要改进技术,通常情况下使用的高斯滤波都是二维滤波形式,滤波函数和图像卷积分别为:

如上述函数所示,二维高斯滤波在改进Canny算子中的应用受σ的影响,σ越小,则函数越集中对噪声的过滤能力就越弱,而σ越大其对边缘数据的过滤能力就会越低,所以在实际应用中高斯滤波改进技术应该根据滤波的实际情况进行调试,确保σ的大小适宜,既能够获得较为理想的过滤效果,同时也能够较为全面的覆盖数据整体。高斯滤波器是一种从数理角度出发对数据信息的一种滤波形式,其本身对几何图形的滤波能力相对较差,所以在实际应用中可以借助形态学滤波器对其滤波效果进行加强,二者的有机结合能够有效的弥补各自的不足,提升滤波效果。

1.2 双阈值法改进

在人体行为分析系统运行过程中,对人体行为信息的采集主要依靠双阈值算法进行,相对于单阈值算法双阈值算法更加灵活对行为信息的采集面更加广阔,但是在实际应用中双阈值的极值,即高阈值T1和低阈值T2的明确存在较大的问题,在实际应用中随着T2的增大,系统去边缘的幅度就会越大,系统对边缘的处理正度就会越大,可以有效的去除边缘的假值,但是过大则会导致边缘值的流失;随着T1的减小,图像的边缘轮廓就会越多图像信息就会越详细,但是过小则会导致图像中虚假边缘过多的问题。

由前文所述,在人体行为分析活动中双阈值存在的缺陷影响重大,所以在改进的Canny算子中,对双阈值法的改进至关重要,在本次试验中采用矩量保持法对Canny算子的双阈值进行最佳取值计算,计算公式如下:

其中M,N是f(x,y)为灰度图像水平和垂直方向上的像素数量。

2 提取人体图像的 Hu 不变矩特征

Hu不变矩是一种优秀的图像处理技术,在人体行为分析系统中的应用具有识别率高、缩放、旋转和评议不变的优点,因此本次研究活动选择Hu不变矩作为人体行为特征信息的采集和分析技术,在实际应用中首先将其输入到BP神经网络中进行学习。假设图像点(x,y)的灰度值为f(x,y)那么整幅图像的(p+q)的阶矩为mpq=

其中p,q=0.1.2···

3 RBF 神经网络的人体行为识别

3.1 RBF 神经网络

RBF神经网络是一种三层结构的网络结构形式,第一层是神经网络的输入层,内部节点数量与输入向量的分量数量相等,第二层是隐含层,其中共含有P个隐藏节点,用于对上一层次的输入数据进行预设分析,第三层是神经网络的输出层,内部含有众多网络节点,节点的数量与输出向量的分量相等。其具体的拓扑结构如图1所示。

3.2 RBF 神经网络人体行为识别步骤

借助RBF神经网络实现的人体行为识别,实际上是以人体行为活动中7个Hu不变矩为媒介的数据输入活动,在行为数据的采集过程中不同的人体行为信息会以7个Hu不变矩的不同排列方式和组合方式呈现出来,这种组织形式和组织结构的不同会在神经网络系统内部转化而成不同的数据信息,根据Hu不变矩的不同形态RBF神经网络就能够实现对人体行为信息的分类,并在进一步分析的基础上形成对人体行为信息的深入了解和识别。

通常情况下RBF神经网络对人体行为信息的识别包括3个内容:1)借助外接数据采集设备将人体轮廓特征组成特征矩阵X=[X1,X2,···XN]作为RBF的输入向量,生成相应的输出矩阵O=[O1,O2···ON]作为每个输入量对应的输出。2)假设隐含层的节点数为P0,采用的k均值聚类算法聚类,计算聚类中心ci以及扩展常数σ1;3)对计算聚类目标函数S进行推算直到输出数据为S<ω(ω为判断聚类活动是否应当结束的目标值,在本次试验活动中ω取值0.7)。

4 仿真实验

4.1 数据集合对比模型

为了检测人体行为识别系统的识别能力,本次试验活动选取了多组仿真样本对系统的识别能力进行仿真检测,检测样本共有十组,每一组都是一种人体行为动作,由九个不同的人分别进行组成一个检测组,在检测活动中为了突出检测的针对性,并保证检测结果的稳定性,检测的背景和检测的视角都相同,基本上排除了人体行为动作识别的其他影响因素。

在具象的模型检测活动中,对九个人完成的诗歌形体动作进行分解组合,共形成了五百个测试样本,其中四百个样本用于对RBF神经系统的学习训练,一百个用于对分析模型的测试,参与测试的共有两个识别系统,一种是传统Canny算子与RBF神经网络组成的识别系统,一种是由改进Canny算子与BP神经网络组成的识别系统,以达到对改进型Canny算子和RBF神经网络性能的测试目的。

4.2 结果与分析

4.2.1 Canny 算子改进前后的识别效果

为了达到对改进型Canny算子的性能检测目的,对改进型Canny算子-RBF系统和Canny-RBF系统进行了分别测试,测试结果如图2所示,改进型Canny算子对五中人体行为的平均识别正确率分别提升了1.52%、2.38%、0.23%、3.89%、2.40%,基于改进型Canny算子对图像的信息进行检测,检测活动生成的检测图像效果要比在传统Canny算子基础上形成的图像完整、精准。

4.2.2 RBF 神经网络和 BP 神经网络的识别效果对比

为了突出RBF神经网路在人体行为识别活动中的优势,选择了改进型Canny-RBF系统和改进型Canny-BP系统进行了对比仿真研究,其平均图像识别率如图3所示,相对于传统的BP神经网络,应用的RBF神经网络对图像信息的识别率有了极高水平的提升。

5 结论

人体行为识别系统是计算机信息技术发展到一定程度形成的先进的人机交互技术,其本身的发展和完善对现代计算机网络技术和社会经济活动的广泛领域都有现实作用,所以对基于改进canny算子和神经网络的人体行为识别模型的研究具有鲜明的现实意义。本文从Canny算子改进技术、RBF神经网络、RBF神经网络对图像信息的识别、实证分析等四个方面对这一问题进行了简要分析,以期能够为基于改进canny算子和神经网络的人体行为识别模型应用水平的提升提供支持和借鉴。

摘要:人体行为识别是现代计算机人机交互工程的高级形式,本质上是对人体行为信息的一种计算机采集和分类识别系统,在这一系统运行过程中系统对人体行为信息的准确采集和精确识别是实现其功能的关键,本文将立足于人体行为识别的实际,在canny算子和神经网络的基础上对人体行为识别模型进行简要分析。

关键词:canny算子,神经网络,人体行为,识别模型

参考文献

[1]姜莹礁.基于聚类RBF神经网络的人体行为识别[J].计算机应用与软件.2013.

[2]叶德堃.基于图像处理和神经网络的光环境优化控制研究[J].计算机应用研究.2013.

[3]杨大春.基于遗传算法优化BP神经网络的行为识别[D].辽宁科技大学.2012.

[4]王洪斌.基于三轴加速度传感器的人体行为识别研究[D].江南大学.2014.

[5]叶银兰.基于Boosting RBF神经网络的人体行为识别[J].计算机工程与应用.2008.

上一篇:施工项目质量下一篇:英语体系