检测算子

2024-10-05

检测算子(精选8篇)

检测算子 篇1

1 缘检测的基本概念

物体的边缘是图像局部变化的重要特征, 以不连续性的行式出现, 通常用方向和幅度描述图像的边缘特性。一般来讲, 沿边缘走向的像素变换平缓, 而垂直于边缘走向的像素变化剧烈。基于边缘检测的基本思想是先检测图像中的边缘点, 再按一定策略连接成轮廓, 从而构成边缘图像。

边缘精度和抗噪性是边缘检测的主要性能指标, 两者互相制约。若强调边缘精度, 则噪声产生的伪边缘会引起不合理的边界;若注重抗噪性, 则会造成边缘漏检和轮廓线的位置偏离。这样边缘检测可采用局部策略和全局策略, 所谓的局部策略法就是边缘点处理仅仅依靠其相邻边缘点的信息, 这类算法的复杂性较低, 但对噪声敏感, 且不能处理较为复杂的图像;全局策略则与之相反, 从全局优化角度出发, 边缘点的处理应在图像的较大范围内加以考虑, 这类算法是目前的研究热点。

2 算子介绍

2.1 Roberts算子

Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子, Robert算子图像处理后结果边缘不是很平滑。经分析, 由于Robert算子通常会在图像边缘附近的区域内产生较宽的响应, 故采用上述算子检测的边缘图像常需做细化处理, 边缘定位的精度不是很高。

Roberts算子实现的理论基础:

G[i, j]=|f[i, j]-f[i+1, j+1]|+|f[i+1, j]-f[i, j+1]|;

其中G[i, j]表示处理后 (i, j) 点的灰度值, f[i, j]表示处理前该点的灰度值。

2.2 Priwitt算子

为在锐化边缘的同时减少噪声的影响, Prewitt从加大边缘增强算子的模板大小出发, 由2×2扩大到3×3来计算差分。

差分计算公式:

undefined

Prewitt算子实现的理论基础:

两个卷积核形成Prewitt边缘检测算子。图像中的每个点都用这两个核进行卷积, 取最大值作为输出。Prewitt边缘检测算子结果产生一幅边缘强度图像。

2.3 Sobel算子

Sobel在Prewitt算子的基础上, 对4-邻域采用带权的方法计算差分。Sobel 算子有两个, 一个是检测水平边沿的;另一个是检测垂直平边沿的。由于Sobel算子对于象素的位置的影响做了加权, 因此效果更好。

Sobel算子实现的理论基础:

与Prewitt边缘检测算子一样与其对应的模板卷积。图像中的每个点都用这两个核进行卷积, 取最大值作为输出。Sobel边缘检测算子也产生一幅边缘强度图像。

2.4 Laplace算子

二维函数f (x, y) 的拉普拉斯是一个二阶的微分, 定义为:

∇2f (x, y) =[∂2f/∂x2, ∂2f/∂y2]

可以用多种方式被表示为数字形式。对于一个3×3的区域, 经验上被推荐最多的形式是:

∇2f (x, y) =4f (x, y) -f (x+1, y) -f (x-1, y) -f (x, y+1) -f (x, y-1)

Laplace算子对应的模板:

定义数字形式的拉普拉斯的基本要求是, 作用于中心像素的系数是一个正数, 而且其周围像素的系数为负数, 系数之和必为0。

2.5 Kirsch算子

(1) 算法思想。

利用一组模板分别计算在不同方向上的差分值, 取其中最大的值作为边缘强度, 而将与之对应的方向作为边缘方向。

(2) 算子梯度计算。

设图像f, 模板为Wk (k=1, 2, …, 8) , 则边缘强度在 (x, y) 处为 (以·表示点乘) :

E (x, y) =Max{W1·f, W2·f …W8·f }= Wi·f , 方向为i模板方向。

(3) Krisch算子实现的理论基础。

8个卷积核组成了Kirsch边缘检测算子。每个点都用8个掩模进行卷积, 每个掩模都对某个特定边缘方向作出最大响应, 所有8个方向中的最大值作为边缘幅度图像输出。最大响应掩模的序号构成了边缘方向的编码。

2.6 Canny算子

(1) 图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置;

(2) 根据对信噪比与定位乘积进行测度, 得到最优化逼近算子。这就是Canny边缘检测算子;

(3) 类似与Marr (LoG) 边缘检测方法, 也属于先平滑后求导数的方法。

3 算子算法实现方法与过程

3.1 图象边缘检测的基本步骤

(1) 滤波。

边缘检测主要基于导数计算, 但受噪声影响。

但滤波器在降低噪声的同时也导致边缘强度的损失。

(2) 增强。

增强算法将邻域中灰度有显著变化的点突出显示。一般通过计算梯度幅值完成。

(3) 检测。

但在有些图象中梯度幅值较大的并不是边缘点。最简单的边缘检测是梯度幅值阈值判定。

(4) 定位。

精确确定边缘的位置。

3.2 Roberts算子实现步骤

(1) 取得原图的数据区指针;

(2) 开辟两个和原图相同大小的图像缓冲区;

(3) 每个像素依次循环, 用Roberts边缘检测算子分别用两种模板计算图像中各点灰度值, 取绝对值并对计算后的每一像素比较两种模板结果的大小, 取较大值;

(4) 将缓冲区中的数据复制到原图数据区。

3.3 Prewitt实现步骤

(1) 取得原图的数据区指针;

(2) 开辟两个和原图相同大小的图像缓冲区, 将原图复制到两个缓冲区;

(3) 分别设置Prewitt算子的两个模板, 调用Templat ( ) 模板函数分别对两个缓冲区中的图像进行卷积计算;

(4) 两个缓存图像每个像素依次循环, 取两个缓存中各个像素灰度值较大者;

(5) 将缓冲区中的图像复制到原图数据区。

3.4 Sobel算子实现步骤

(1) 取得原图的数据区指针;

(2) 开辟两个和原图相同大小的图像缓冲区, 将原图复制到两个缓冲区;

(3) 分别设置Sobel算子的两个模板, 调用Templat ( ) 模板函数分别对两个缓冲区中的图像进行卷积计算;

(4) 两个缓存图像每个像素依次循环, 取两个缓存中各个像素灰度值较大者;

(5) 将缓冲区中的图像复制到原图数据区。

3.5 Kirsch算子实现步骤

(1) 取得原图的数据区指针;

(2) 开辟两个和原图相同大小的图像缓冲区, 将原图复制到两个缓冲区;

(3) 分别设置Kirsch算子的模板1和模板2, 调用Template ( ) 模板函数分别对两个缓冲区中的图像进行卷积计算。求出两幅缓存图像中每个像素的较大灰度值存放在缓存图像1中, 并将缓存图像1拷贝到缓存图像2中;

(4) 同第三步, 以此类推, 分别设置Kirsch算子的模板3、模板4、模板5、模板6、模板7和模板8, 每次计算后, 求出两幅缓存图像中灰度值较大者存放在缓存图像1中;

(5) 最后将得到的结果缓存图像1复制到原图。

3.6 Laplace算子实现步骤

(1) 取得原图的数据区指针;

(2) 开辟一个和原图相同大小的图像缓冲区, 将原图复制到缓冲区;

(3) 设置Laplace模板参数, 调用Templat ( ) 函数对缓存图像进行卷积计算;

(4) 将计算结果复制回原图。

3.7 Canny算子实现的基本步骤

(1) 用高斯滤波器平滑图象;

(2) 用一阶偏导的有限差分来计算梯度的幅值和方向;

(3) 对梯度幅值进行非极大值抑制;

(4) 用双阈值算法检测和连接边缘。

参考文献

[1]贾永红.数字图像处理[M].武汉:武汉大学出版社, 2007.

[2]贾云德.机器视觉[M].北京:科学出版社, 2000.

[3]章毓晋.图象处理和分析[M].北京:清华大学出版社, 1999.

[4]王娜, 李霞.一种新的改进Canny边缘检测算法[J].深圳大学学报, 2005, (4) .

辅助算子的引入方法 篇2

关键词: 辅助算子 中值定理 几何手段

中图分类号:O174文献标识码:A文章编号:1007-3973(2010)06-094-02

在解决数学问题时,广泛应用了辅助算子法,比如建立中值定理时,辅助算子的引入就起到至关重要的作用.如何灵活的采用合适的辅助算子,常常成为证题的关键所在.本文尝试从积分、联想、几何手段等方面入手,总结几种引入辅助算子的方法。

1引理

引理1(Roller定理)若函数f满足如下条件:

(1)f在闭区间[a,b]上连续;(2)f在开区间(a,b)内可导;(3). 则在(a,b)内至少存在一点 ,使得.

引理2(Lagrange中值定理)若函数满足如下条件:

(1)f在闭区间[a,b]上连续;(2)f在开区间(a,b)内可导;则在(a,b)内至少存在一点,使得.

2引入方法

2.1通过积分引入辅助算子

显然, 又因F(x)在[0,1]上连续,在(0,1)内可导,故由引理1知:存在,使得

即方程(1)在(0,1)内至少存在一根.证毕

此例题通过观察题目中方程的特点,结合积分,巧妙引入辅助算子(2),进而利用中值定理,使得题目得证.

2.2通过联想引入辅助算子

当我们的数学修养达到一定水平后,又是可以联想或猜想出来一些辅助算子,如

例2 设f在闭区间[a,b]上连续,在(a,b)内可导,,试证:,使得:

检验引理1的条件即可证之.证毕

当然,这种方法需要对题目中出现的式子做适当的变形,并要有较好的数学基础,方能有合理的联想. 因此,此种方法对数学修养要求较高.

2.3用几何手段引入辅助算子

在现行的许多教材,教学参考资料中,证明Lagrange中值定理时,大多采用几何方法引入辅助算子.

只需想办法定出参数 的具体值,使得 ,即可由Roller中值定理证明成立.如图1,D(a,0)、E(b,0)分别与f(x)的始点、终点相对应,过原点O作直线交AD于M,交BE于N,则四边形AMNB是平行四边形,AM=BN.

由Roller中值定理证明结论成立.证毕

(基金项目:徐州工程学院科研项目(XKY2009111))

参考文献:

[1]华东师范大学数学系,数学分析[M].北京:高等数学教育出版社,1995,154-157.

[2]同济大学数学系,高等数学[M].北京:高等数学教育出版社,2007,128-131.

几种经典边缘检测算子的比较 篇3

1边缘的定义

图像的边缘在数字图像处理和分析中具有很重要的作用, 但至今还没有关于图像边缘被广泛认可的数学定义。一方面是因为图像的内容很复杂,很难单纯的用数学方法进行描述, 另一方面也是因为人们对自身感知目标边界的视觉机理认知还处在一个模糊的阶段当中。

目前,对于图像的边缘只有一种形容性的定义,即具有不同灰度级的两片均匀图像区域的交接,也就是说边界反应的是一种局部的灰度变换。边缘包括3个内容:法线方向、 边缘方向和边缘强度。法线方向是针对在边缘的某一点灰度变化最剧烈的一个方向,并且法线方向垂直于边缘方向;边缘的方向是探测边界的切线方向,边缘强度是指沿法线方向图像变化强度的量度。

2经典边缘检测算子

2.1 Sobel算子

Sobel算子所采用的算法是对目标点周围灰度先进行加权平均,然后再对结果进行微分运算,算子的计算方法如下:

2.2 Lo G算子

Lo G利用二阶导数过零点来检测图像边缘,提出了运用拉普拉斯算子之前先进行高斯低通滤波,表示为:

其中f(x,y)为图像,G(x,y)为高斯函数,表示为:

公示中表示为标准差,当使用Gauss函数来卷积模糊一幅图像时,图像模糊的程度是由决定的。

由上式可得:

该式说明了Lo G算子即先对高斯算子进行微分运算,再与图像卷积。

2.3 Canny算子

Canny算子对检测结果提出了3个准则。

信噪比准则:对边缘的错检率要低,即尽可能减少伪边缘, 更多的检测出图像的真实边缘,在数学上反映出信噪比尽可能大,当信噪比越大,检测结果的错误率越小。

定位精度准则:边缘的检测结果要尽可能接近真实边缘。 反映到数学上就是求合适的滤波函数使Loc尽可能的大。

单边缘响应准则:对同一个边缘的响应次数要尽可能的低,即对单边缘只有一次响应。

有了这3个准则,寻找最优的滤波器问题就转化为泛函的约束优化问题了,公式的解可以由高斯的一阶导数去逼近。

Canny边缘检测的基本思想就是首先对图像选择一定的Gauss滤波器进行平滑滤波,然后采用非极值抑制技术进行处理得到最后的边缘图像,其步骤为[2]:用高斯滤波器对图像进行平滑滤波;通过一阶偏导的差分来计算边缘梯度的幅值和方向;对梯度幅值进行非极大值抑制;通过双阈值算法检测和边缘连接。

3几种算子的比较

在Matlab平台下对实验图片应用上述算子进行边缘检测,检测结果如图1。

通过观察图1可以发现,Lo G算子只能获得扳手边缘位置信息,不能获得扳手图片边缘方向的信息。Sobel算子用来检测斜向的边缘的效果较好,去除噪声的能力也比较强, 能滤掉一图像部分噪声并去除掉部分伪边缘,但同时有些真正的边缘也被错误的去掉了。Canny算子给出了一种集边缘定位的精度和抗噪声干扰都在接受范围内的较好办法。

4结论

检测算子 篇4

本文首先分解彩色图像的RGB分量,然后使用Sobel梯度算子计算各分量在x和y方向上的梯度值,得到彩色轮廓边缘图像,再利用图像阈值分割技术获得合理的阈值,并将边缘图像二值化,以获得清晰的边缘轮廓图像。实验结果证明,本文的方法鲁棒性好,边缘定位准确,能够获得比传统的边缘检测算子更多的边缘轮廓信息。

1 彩色边缘

对于彩色边缘有很多种定义,有学者认为彩色图像中的边缘,即是其亮度图的边缘[3],但是该定义忽略了色调饱和度的不连续性;也有人提出如果至少有一个彩色分量存在边缘[4],那么彩色图像就存在边缘,但是这个定义会导致在单个彩色通道确定边缘带来的准确性问题;还有人提出基于单色的彩色边缘定义[5],它借助对三个彩色分量的梯度绝对值之和来计算,如果梯度绝对值的和大于某个阈值,就判断存在彩色边缘。这三种定义均忽略了矢量分量间的联系,因为一幅彩色图像表示了一个矢量值的函数,彩色信息的不连续性可以用矢量值的方法来定义。

本文使用的彩色边缘的定义利用了三通道彩色图像的微分[6],对一个彩色像素或者彩色矢量C(x,y)=[u1,u2,…,un]T,图像函数在位置(x,y)的变化用等式△C(x,y)=J△(x,y)来描述。彩色图像函数中具有最大变化或者不连续性的方向用对应本征值的本征矢量JTJ来表示,如果变化超过一定的值,就表明存在彩色边缘像素。

2 Sobel算子的基本原理

Sobel算子是一种梯度幅值,假设原图像为f(x,y),g1(x,y)和g2(x,y)是两个卷积核,Sobel算子就可以通过两个卷积核对原图像f(x,y)进行卷积运算而获得。其数学表达式为:

通常使用差分代替一阶偏导,计算方法如下:

3 图像阈值分割技术

阈值分割法是一种基于区域的图像分割技术,基本原理是:通过设定不同的特征阈值,把图像像素点分为若干类。常用的特征包括:直接来自原始图像的灰度或彩色特征;或由原始灰度或彩色值变换得到的特征。设原始图像为f(x,y),按照不同的准则在f(x,y)中找到特征值t,将图像分割为两个部分,分割后的图像为:

4 实验结果及分析

本实验使用国际标准测试图像彩色Lena在Matlab 7.0软件平台下进行测试。输入标准测试图像如图1所示,通过本文改进的Soble算子对RGB彩色图像进行三通道分解,按照式(2)分别计算各分量在x和y方向上的梯度值,设置大于门限值d的像素值为1,否则置为0,得到如图2所示彩色轮廓边缘图像。将彩色图像灰度化如图3所示。可以看出此时的边缘轮廓图像噪声范围较大,再通过三种图像阈值分割方法获得合理的阈值,将边缘图像二值化,获得最终的边缘轮廓图像。

其中,方法(1)利用获得的彩色轮廓边缘图像,通过灰度直方图的阈值选取获得边缘图像如图4所示;方法(2)将彩色轮廓边缘图像通过最大熵的阈值分割获得边缘图像如图5所示;方法(3)将彩色轮廓边缘图像通过最大类间方差分割阈值获得边缘图像,如图6所示。

三种阈值分割方法相比,最大熵阈值和最大类间方差分割算法要优于直方图阈值选取算法,而最大熵阈值和直方图阈值选取算法的优点在于运算复杂度稍低,运算时间较短。

将彩色图像直接转化成灰度图以后再使用传统canny算子、soble算子和prewitt算子进行边缘检测的结果效果图如图7~图9所示。

通过对比可以发现本文所提出的方法和传统的边缘检测方法相比鲁棒性更好,边缘定位更准确,并且能够获得比传统的边缘检测算子更多的边缘轮廓信息。

本文使用Sobel算子对彩色图像的RGB分量进行梯度值运算,获得彩色轮廓后,再分别通过灰度直方图的阈值分割、最大熵的阈值分割和最大类间方差阈值分割三种方法去除彩色轮廓边缘的噪声因素,从而获得更为清晰的二值化边缘轮廓图像。实验证明,该方法在检测图像边缘细微颜色变化和细节纹理信息方面比传统的检测方法具有更加良好的效果。

参考文献

[1]KOSCHAN A,ABIDI M.彩色数字图像处理[M].章毓晋,译.北京:清华大学出版社,2010.

[2]NOVAK C L,SHAFER S A.Anatomy of a color histogram[C].In:Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Champaign,USA:1992:599-605.

[3]ROBINSON G S.Color edge detection[C].In:Symposium on Advances in Image Transmission Techniques,San Diego,CA,1976:126-133.

[4]PRATT W K.数字图像处理[M].张引,译.北京:机械工业出版社,2009.

[5]KOSCHAN A,ABIDI M.Detection and classification of edges in color images[J].IEEE Signal Processing Magazine,2005,22(1):64-73.

检测算子 篇5

在计算机视觉和图像处理等领域中,图像边缘检测技术占有重要的地位,其效果直接影响图像处理后续工作质量。边缘是图像灰度变化最为显著的区域,主要存在于目标与背景之间、目标与目标之间、区域与区域之间、基元与基元之间[1],边缘检测就是确定和提取这些边界信息,为后续分析和处理提供重要的依据和基础。图像边缘检测技术在生产安全监控、生物工程、医学诊断、工业自动化、遥感遥测及故障检测等领域应用广泛,并起着极其重要的作用。

图像边缘检测算法一直是国内外众多学者研究的热点之一,每年都有上百种被提出来,但这些算法的基本思想主要分为以下三大类: 一类是借助空域微分算子[2],用微分模板与图像进行卷积运算来实现的方法,亦被称为传统边缘检测算法,如Roberts算子[3]、Sobel算子[4]、Prewitt算子[5]、Canny算子[6]等; 第二类借助能量最小化原则,从能量分配统计的角度 实现的方 法,如基于神 经网络的 算法[7]、Snake算法[8]等。第三类是近些年来发展起来的新理论应用到边缘检测中的方法,如基于小波理论[9]、遗传算法[10]、模糊理论[11]、形态学理 论[12]等边缘检测算法。传统的边缘检测算法都是利用一阶梯度极大值或二阶导数过零点值来判断边缘,算法实现简单、速度快,但对噪声较为敏感; 新的边缘检测方法( 如基于小波理论) 具有较好的抗噪能力,但会滤掉一些弱边缘。基于模糊理论的算法抗噪能力较强,但涉及到复杂的矩阵变换,计算量大,速度慢。基于数学形态学算法对图像的结构边缘保护较好,但普适性较差。

实际图像中,由于边缘类型复杂且经常存在不同程度的噪声,这些新方法在适应性、稳定性和有效性等方面往往面临着极大的考验,而传统的空域卷积算法( 如Sobel等) 以较强的适应性和速度快等优势获得了较为广泛的应用,本文针对传统Sobel算法的不足提出了一种改进算法,算法对初始梯度进行了二次更新,在边缘检测方向、定位精度、粗细程度方面都得到较好的提高。

1传统Sobel边缘检测原理

传统的Sobel边缘检测算法,是采用水平和垂直两个方向模板与图像空间像素点进行邻域卷积运算,如图1所示。图中,3 × 3模板内的数值为模板权值。

模板权值和检测窗口像素位置之间的对应关系如式( 1) 所示:

式中,Mkm,n代表模板内元素权值,k = 1代表垂直模板,k = 2代表水平模板。

设F为数字图像,检测窗口内像素灰度如式 ( 2) 所示。

方向模板A与窗口像素的卷积运算按照式( 3) 的过程进行。

fk( i,j) 表示模板与窗口像素卷积结果,即方向梯度,图像对应模板中心位置的像素值用2个卷积结果的最大 值替代,作为中心 点像素新 的灰度值,即:

G是得到的梯度图像,由于图像边缘附近像素灰度值变化比较大,可以将梯度图像中像素灰度值大于TH( TH为设定的阈值) 的像素点当作边缘点。

2改进算法

针对传统Sobel算法在边缘定位、检测精度不高及提取边缘较粗等不足,提出了一种改进算。算法增加了45°方向和135°方向两个模板如图2所示,算法一共采用四个方向模板,使得边缘定位和精度得到了较大的提高; 在计算图像梯度时结合了方向拆分法,将每个方向梯度值与两个子方向半个模板对应的像素点像素值之和分别求比值,比值最大者作为该方向的梯度值,然后将四个方向梯度的最大值作为窗口中心点的新梯度值。

2.1图像梯度计算方法

算法采用新的方法来计算图像的梯度,先采用式( 5) 计算四个方向的原始梯度,这里k = 1,2,3,4分别代表水平、垂直、45°方向和135°方向。然后将每个检测窗口按照对角方向分成两半,计算各半个窗口内三个像素点( 对角线上像素点不计) 与模板对应权值的绝对值的乘积之和,计为Sa、Sb。对于各个方向,Sa、Sb的值为式( 6) 所示。

再用该方向的原始梯度fk( i,j) 分别除以4倍Sa、4倍Sb,取最大者作为该方向的新梯度值f'k( i, j) 。如式( 7) 所示。

最后,将得到的四个方向新梯度值的最大值赋给检测窗口图像中心点像素,作为最终的梯度值输出。如式( 8) 所示。

2.2边缘细化

经过上述方法可以计算图像任意点的新梯度值,可得到新的梯度图像,图像中某一点梯度值较大表示在该点图像梯度变化迅速,若无噪声干扰,便可判断该点是图像的边缘点。但梯度图像一般是经过一阶微分或类似方法计算得出的,因此其边缘仍然较粗,不利于后续的边缘连接、特征提取等处理,因此若想得到较细的图像的边缘还需将梯度图像进行细化处理和二值化处理,使得到的边缘图像边缘更细。

由于图像中的前景或背景内部像素的灰度变化较小,因此梯度图像中对应的区域梯度也较小; 而图像的前景与背景的交界处是图像像素灰度变化较大的区域,因此该区域对应的图像梯度也较大,当然, 这些区域中的梯度也并非都是真正的图像边缘。文献[13]表明,图像边缘的梯度多呈现屋顶状,一般可将图像边缘区域划分为三类区间: 暗区间、灰色区间和亮区间,真正的图像边缘多数分布在屋顶处的亮区间处,这里的边缘具有最大的梯度值,而灰色区间的边缘梯度值较小,暗区间梯度值最小。因此,要想消除在暗区间和灰色区间的非边缘梯度,通常采取局部域值设定法,通过式( 9) 将它们的梯度值去除。

式( 9) 中grade( x,y) 为3 × 3窗口内中心点f( x,y) 的梯度值,Max( x,y) 为该窗口内中心点8邻域梯度最大值,a为调控参数,实验表明a取0. 7 ~ 0. 9时可以使边缘达到较小的像素宽度,损失边缘较少,实现梯度图像边缘的细化。

2.3边缘二值化

经过上式处理,仍是梯度图像,要想得到更细的边缘图像,还须进行二值化处理,滤除若边缘带来的毛刺。设定阈值TH,将得到的梯度 图像通过式 ( 10) 进行边缘提取,得到图像的边缘h。TH对于不同的图像可以根据实际情况和需要设定。

3验证实验

在MATLAB平台下编程实验实现边缘检测及细化算法,实验中对三幅标准灰度图像分别为“Lena”、“细胞”和“汽车”。采用经典Sobel算法、本文算法对原始图像进行边缘检测及细化处理,对比结果如图3 - 5所示。

图3为细节丰富的Lena图像边缘检测效果对比图,从图中可以看出,本文算法的梯度图像虽没有传统Sobel的梯度图像亮,但轮廓清晰、边缘较细;另外,算法提取的边缘图像纹理等细节要比Sobel算法更丰富( 如帽子纹理和头发) 、轮廓更清晰。

图4是对边缘较为模糊、对比度较低的血液细胞图像边缘检测效果对比图,从图中可以看出,本文算法检测细胞梯度图像亮度与传统Sobel算法相当,但梯度边缘略细一些; 另外,算法提取的细胞边缘连续性较好,斜向边缘更清晰,而且边缘要比传统Sobel算法的细。

图5为对结构简单、对比度高的汽车图像边缘检测效果对比图,可以很容易地看出,本文算法检测的图像边缘无论是梯度图像还是边缘图像,从清晰度、连续性和细化程度上,都要明显优于传统Sobel算法。

从以上3种不同情况图像的处理结果对比图中可以看出,本文算法得到的梯度图像及边缘图像均比传统Sobel算法的效果好,细节更丰富、边缘更连续、线条更细。

4结束语

本文在传统Sobel算法的基础上,针对其存在的边缘定位不精确、方向性差以及边缘较粗等不足, 提出了一种改进的Sobel边缘检测算法,算法采用一种新的方式计算图像梯度,即用图像的初始梯度与模板方向各半窗口内梯度和的比值的最大值替代,充分利用了邻域梯度相关性,使得获取的图像梯度更完整、细节丰富、边缘较细。

实验证明,算法对于几种不同情况的图像均获得了较好的效果,整体性能优于传统Sobel算法,从一定程度上弥补了传统Sobel算法的不足,具有较强的适用性和应用价值。本文算法的不足之处,对于边缘模糊图像,虽然提取的边缘连续性较好,但依然存在一定程度的弱边缘丢失现象,在得到较细、连续性较好的图像边缘同时如何更好地保护弱边缘, 是本文算法有待改进的地方。

摘要:提出了一种基于Sobel算子改进的边缘检测算法。该算法在传统Sobel算子模板基础上增加了45°方向和135°方向两个模板,提高了边缘定位的精度。在计算图像梯度时结合了方向拆分法,将每个方向梯度与两个子方向半个模板对应的像素点之和分别求比值,选择最大者作为该方向的梯度值,然后将四个方向梯度的最大值作为窗口中心点的梯度,最后对梯度图像进行阈值分割和细化,得到边缘图像。实验证明,算法获取的图像边缘与传统Sobel算法相比,具有定位准确、图像边缘较细的优点。

检测算子 篇6

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

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.

检测算子 篇7

在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同区域内部的特征或属性是不同的,边缘的检测正是利用物体和背景在某种图像特性上的差异来实现的。这种差异包括灰度、颜色或者纹理特征。边缘检测实际上就是检测图像特性发生变化的位置。

由于噪声和模糊的存在,检测到的边界可能会变宽或在某些点处发生间断,因此,边界检测包括两个基本内容:首先抽取出反应灰度变化的边缘点,然后剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。

最简单的边缘检测方法是边缘检测算子,它利用相邻区域的像素值不连续的性质,采用一阶或二阶导数来检测边缘点。

1 边缘检测算法分析

经典的边缘提取方法是考查图像的每个像素在某个领域内灰度的变化,利用边缘邻近一阶或二阶方向导数变化规律,用简单的方法检测边缘,这种方法称为边缘检测局部算子法。边缘检测的基本思想是通过检测每个像元和其邻域的状态,以决定该像元是否位于一个物体的边界上。如果每一个像元位于一个物体的边界上,则其邻域像元灰度值的变化就比较大。例如可以应用某种算法检测出这种变化并进行量化表示,那么就可以确定物体的边界。

常用的边缘检测算子主要有:Roberts、Sobel、Prewitt、Laplacian、Laplacian of Gaussian和Canny边缘算子。

本文只对Roberts、Sobel、Prewitt、Canny这几种基于一阶导数的边缘检测算子进行简要介绍。

1.1 Roberts算子

Roberts边缘算子是一种斜向偏差分的梯度计算方法,梯度的大小代表边缘的强度,梯度的方向与边缘走向垂直。

Roberts操作实际上是求旋转±45°两个方向上微分值的和。

Roberts边缘算子定位精度高,在水平和垂直方向效果较好,但对噪声敏感。

1.2 Sobel算子

Sobel算子是一组方向算子,从不同的方向检测边缘。Sobel算子不是简单的求平均再差分,而是加强了中心像素上下左右四个方向像素的权重,运算结果是一副边缘图像。

Sobel算子通常对灰度渐变和噪声较多的图像处理得较好。

1.3 Prewitt算子

Prewitt边缘算子是一种边缘样板算子,利用像素点上下、左右邻点灰度差,在边缘处达到极值检测边缘,对噪声具有平滑作用。由于边缘点像素的灰度值与其领域点像素的灰度值有显著不同,在实际应用中通常采用微风算子和模板匹配方法检测图像的边缘。

Prewitt算子不仅能检测边缘点,而且能抑制噪声的影响,因此对灰度和噪声较多的图像处理得较好。

1.4 Canny算子

Canny算子是一类最优边缘检测算子,它在许多图像处理领域得到了广泛应用。

Canny考核边缘检测算子的指标是:低误判率,即尽可能地把边缘点误认为是非边缘点;高定位精度,即准确地把边缘点定位在灰度变化最大的像素上;抑制虚假边缘。

Canny从这三项指标出发,推导出了最佳边缘检测算子-Canny边缘算子。

该算子的基本思想是:先对处理的图像选择一定的Guass滤波器进行平滑滤波,抑制图像噪声然后采用抑制称之为“非极值抑制”(Nonmaxima Suppression)的技术,细化平滑后的图形梯度幅值矩阵,寻找图像中的可能边缘点;最后利用双门限检测通过双阈值递归寻找图像边缘点,实现边缘提取。

Canny方法也使用Laplacian算子,该方法与其他边缘检测方法的不同之处在于,它使用两种不同的阈值分别检测强边缘和弱边缘,并且仅当弱边缘与强边缘相连时才将弱边缘包含在输出图像中,因此这种方法容易检查出真正的弱边缘。

2 实验结果与分析

2.1 各算子仿真结果比较

图1是我们要进行实验的原图,图2,图3,图4分别是利用Canny算子,Prewitt算子和Roberts算子对图1进行仿真所检测出的边缘信息。

图5-图8是利用Sobel算子在45度角,-45度角,垂直,水平和垂直,四个不同方向上对图1进行仿真所得出的边缘信息。

从以上实验结果可看出,Roberts算子检测水平和垂直方向边缘的性能好于斜线方向的边缘;而Sobel和Prewitt算子在这方面则比较弱,尤其是Prewitt算子,基本丢失了角点信息;Sobel算子检测出的边缘容易出现多像素宽度;Canny算子能够检测到真正的弱边缘,是最优边缘检测算子。

2.2 各方法对噪声敏感度仿真结果比较

图9是我们要进行实验的椒盐噪声图像,图10,图11,图12分别是利用Canny算子,Prewitt算子和Roberts算子对图9进行仿真所检测出的边缘信息。

图13-图16,是分别利用Sobel算子在45度角,-45度角,垂直,水平和垂直,四个不同方向上对图9进行边缘检测所得出的边缘信息。

从以上仿真结果可以看出,Roberts对噪声较敏感;Sobel算子虽对噪声有一定的抑制能力,但检测出的边缘容易出现多像素宽度;Canny算子不容易受噪声的干扰,能够检测到真正的弱边缘,但由于具有较强的噪声抑制,同样也会将一些高频边缘平滑掉,造成边缘丢失;Prewitt算子对噪声具有较好的平滑作用。

4 结论

图像的边缘检测是图像特征提取和图像分析理解的基础,它的检测质量对图像的后续处理有着较大的影响。目前,边缘检测技术在很多领域中都得到了广泛的应用。如对医学图像的边缘特征提取、车牌识别、人脸检测技术等。在图像边缘检测领域中有许多传统、经典的边缘检测算子,但它们都不是具有绝对优势的方法。仿真实验表明这些方法,在图像的抗噪声、图像边缘的定位情况、图像部分边缘是否可以检测出和算法运行的速度等方面,各自存在优缺点。对于图像的边缘检测,要根据不同的系统,针对不同的环境条件和要求,选择合适的算子。

参考文献

[1]王爱玲,叶明生,邓秋香.图像处理技术与应用[M].北京:电子工业出版社,2008.

[2]管宏蕊,丁辉.图像边缘检测经典算法研究综述[J].首都师范大学学报,2009,(30):66-69.

[3]秦襄培.MATLAB图像处理与界面编程宝典[M].北京:电子工业出版社,2009.

[4]张婷曼,王庆.基于边缘检测与分层的车牌定位[J].科技资讯,2009(33):191-192.

检测算子 篇8

图像边缘检测是图像分析的重要内容,也是图像处理领域中的一种重要的预处理技术,广泛应用于轮廓、特征的抽取和文理分析等方面。图像的边缘是图像最基本的特征,它是图像分割所依赖的重要特征,也是纹理特征的重要信息源和形状特征的基础[1]。因此边缘检测在计算机视觉、图像分析中起着重要的作用。在图像处理上,一般认为灰度发生急剧变化的点即为边缘,在频域中则表现为高频分量。传统的边缘检测算法主要利用了空域微分算子通过卷积完成。因为边缘灰度值不连续,导数算子可以检测出这种灰度变化,对图像运用导数算子,突出图像中的局部边缘,将导数值作为相应点的边界强度,然后通过设置门限的方法提取边界点丛集。常用的边缘检测算法有Canny边缘检测算子[2,3]、Sobel算子[4]、Prewitt算子[5]、Robert算子等。Marr和Hildreth将高斯滤波和拉普拉斯边缘检测结合在一起,形成LOG算子,但是高斯滤波中高斯系数仍然存在不确定性的问题。

基于此,笔者提出一种改进的LOG算子边缘检测方法,以减少不确定因素σ对图像边缘检测结果的影响。

1 原始LOG算子

LOG算子(Laplacian of Gaussian)来源于Marr视觉理论中提出的边缘提取思想,首先用高斯函数G(r)和原始图像f(x,y)做卷积,以消除空间尺度小于高斯系数σ的图像变化,得到平滑后的图像I(x,y):

I(x,y)=G(rf(x,y) (1)

其中:

G(r)=(12πσ2)exp(-r2/2σ2)(2)

再用拉普拉斯算子(2)来获取平滑图像的2阶方向导数图像M(x,y):

Μ(x,y)=2{Ι(x,y)}=2(G(r)f(x,y))=

(2G(r))·f(x,y) (3)

其中:

2G(x,y)=1πσ4(1-(x2+y22σ2))exp(x2+y22σ2)(4)

求取Μ(x,y)的零穿点轨迹即可得图像f(x,y)的边缘。

在使用LOG算子[6]对图像进行平滑去噪时,图像的平滑度由高斯系数σ来决定。当σ取较小值时,能得到更多的边缘细节信息,但对噪声的抑制不足;当σ取较大值时,图像能够得到较好的平滑去噪效果,但是图像边缘细节也被消除了,只能检测到模糊的边缘。因此,高斯系数σ的大小,直接影响着LOG算子边缘检测算法的性能,所以该算法在实际应用中很难对边缘和噪声做出合理的取舍,即无法根据具体的图像自动获得最佳的σ值。

2 改进LOG的算法

在二维情况下,计算出不同θ方向的1阶导数,同时求得导数最大值所对应的方向θ。如果这个方向垂直于边缘,则根据方向导数的最大值确定一个边缘点[7,8]。定义Du0f(x0,y0)是点f(x0,y0)在单位向量uθ=(cos θ,sin θ)方向上的导数。在(cos θ,sin θ)方向上的直线通过点(x0,y0)的函数f的约束条件:

ρf(x0+ρcos θ,y0+ρsin θ) (5)

方向导数Du0f(x0,y0)定义为:

Du0f(x0,y0)=xf(x0+ρcosθ,y0+ρsinθ)=xf(x0,y0)cosθ+yf(x0,y0)sinθ=fuθ(6)

定义点:

{x=x0+ρcosθy=y0+ρsinθ

如果函数fθ方向上的2阶导数,即Du02为0,则该点在此方向上的f方向导数为最大。θ方向上f的2阶导函数为:

Du02f(x,y)=2ρ2f(x0+ρcosθ,y0+ρsinθ)(ρ)=

2fx2(x,y)cos2θ+2fxy(x,y)cosθsinθ+

2fy2(x,y)sin2θ=uθΤΗuθ(7)

其中,H是Hessian算子:

Η=[2fx22fxy2fxy2fx2]

因此,通过搜索Du02f(x,y)函数的过零点进行边缘检测,其中θ方向平行于边缘法线方向。但边缘的位置是未知的,根据灰度值的梯度方向f可以解决这一难题。如果考虑图像中的一个像素点附近很小的区域,f的方向与该区域中函数值变化最快的方向一致。如果该区域包含边缘,那么梯度将指向边缘的垂直方向,这样只需计算梯度方向上灰度函数的方向导数即可。由以上分析可知,不必检测所有θ方向上的Du02f(x,y)的过零点,可以利用各方向上都相同的2阶求导算子替换Du02f(x,y)。2阶求导算子可以检测任何方向上的边缘[9]。Marr和Hildreth认为图像的Laplacian算子的过零点为边缘点,其中图像与Gaussian核函数进行卷积运算:

(x,y)∈边缘⇔2=(G·f)(x,y)=

(2Gf(x,y)=0 (8)

因为Laplacian算子是线性运算,所以第2个等式成立,二维算子2G是各向同性的,形状像墨西哥草帽。检测2(G·f)符号改变的像素点即为边缘像素点。

3 仿真分析

对原幅图像用不同算法进行仿真实验,其结果如图1所示。从检测结果来看:Prewitt算子定位较准,但边缘信息不够精确;Canny算子丢失了较多边缘信息;LOG算子由于高斯系数σ需主观设定,存在诸多不确定因素,而所提算法不用进行阈值σ的选择,且很多小的边缘都清晰可见。

为验证本研究所提算法的优越性,笔者对Canny算子和所提算法做了进一步仿真比较,如图2所示。从图2中可以看出,Canny算子在进行边缘检测时丢失了一些边缘细节,而所提算法则对边缘细节体现明显。综上可知,用本研究所提算法进行边缘检测时,边缘信息丰富,定位准确,取得了理想的效果。

4 结束语

本研究在分析原LOG算子的基础上,提出了一种改进的LOG算子,该算子通过引入并计算不同方向极坐标参数的方法,实现图像边缘点的检测,不需要考虑高斯系数σ具体取值对图像处理结果的影响,在实际应用中能对边缘和噪声做出合理的取舍,根据具体的图像自动获得图像边缘点。研究结果表明,所提算法对图像进行检测时,边缘细节明显,伪边缘相对较少,取得了理想的检测效果。且该算法较Prewitt算子、Canny算子[10]等算法均具有明显的优越性。

参考文献

[1]赵景秀,韩君君,王菁,等.一种改进的LOG图像边缘检测方法[J].计算技术与自动化,2009,28(3):74-77.

[2]孙先达,黄其坤,王璞?.Canny算法在岩心图像边缘检测中的应用[J].长江大学学报,2009,6(2):268-270.

[3]CHEN Nai-jian,WANG Sun-an.An Image Edge Detectionand Segmentation Algorithm Based on Small-World Phenom-enon[C]//2008 3rd IEEE Conference on Industrial Elec-tronics and Applications,2008:2272-2277.

[4]ZHOU Ning-ning,ZHAO Zheng-xu,HONG Long,et al.ANew Image Edge Detection Algorithm Based on Measuring ofMedium Truth Scale[C]//Proceedings of 2008 IEEE Inter-national Conference on Networking,Sensing and Control,ICNSC,2008:698-703.

[5]张永亮,刘安心.基于Prewitt算子的计算机数字图像边缘检测改进算法[J].解放军理工大学学报,2005,6(1):44-46.

[6]CHEN Yu,YAN Zhuang-zhi.A Cellular Automatic Methodfor the Edge Detection of Images[C]//Proceedings of the4th international conference on Intelligent Computing:Ad-vanced Intelligent Computing Theories and Applications,2008:935-942.

[7]吴镇扬,周琳.数字信号与图像处理[M].北京:高等教育出版社,2006.

[8]田自君,刘艺.基于LOG算子边缘检测的图像二值化处理[J].中国测试技术,2007,33(6):109-111.

[9][美]PRATT W K.数字图像处理[M].邓鲁华,张延恒,译.北京:机械工业出版社,2005.

上一篇:基因与葡萄酒下一篇:市场退出